[PHP-users 1257] Re: コードをコピーしたことによるエラー?
BosProject T.Takeuchi
php-users@php.gr.jp
Sun, 19 Aug 2001 15:24:55 +0900
他の方もおっしゃっておられましたが、エラーが出た際に
どのようなエラーメッセージが表示されたかが分からないと
的を射た回答ができないことがほとんどです。
文面を読んだだけで想定できるのは次の2点でしょうか。
・エンコーディング設定
・検索結果が0である
基本的にPHPはEUCで記述されていることが原則となりますが、
S-JISになっているということはないでしょうか。入力内容の
文字コード、内部処理用の文字コード、出力時の文字コードなど
つねに自分の環境に合わせて把握、設定しておくことは重要です。
php.iniの設定などもご自身の環境に合わせて適切にカスタマイズ
されてみてはいかがでしょうか。私の場合、php.iniで設定して
いますが、他社からの依頼で直接php.iniをカスタマイズできない
場合には、次のようなことをしています。
<?php
function my_echo($var){
echo i18n_convert($var,"SJIS");
}
$html .= " 出力内容を全て$htmlに保存しておく ";
my_echo($html);
?>
> $sel1 = "select name,area,tel from user where id = '$id1'";
> $execid = pg_exec ($dbcon, $sel1);
次にこのようなselect文の場合には、pg_numrowsで検索結果数を
取得して得た数に応じて処理を展開しないとエラーが起きることが
あります。今回のケースではidが一意の値であろうと推測しますので、
if(pg_numrows($execid) != 1){ // エラー時のエラーナンバーを1とする
echo "ERROR:1<br>\n";
echo $sel1;
exit;
検索結果が1以外の場合は、検索数が0もしくは一意であるべき
idをwhere句として使った結果が正しくない恐れがあるため
エラー処理を行った方が良いでしょう。
}
このような無駄と思えるようなコーディングが後々のデバッグ作業を
楽にすることがあります。また今回のケースのようなselect文の処理は
頻繁に利用することが多いと思いますので、再利用しやすいように
独自にクラスを作っておくと楽になると思います。
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
合資会社ボスプロジェクト
竹内 輝明 webmaster@bos-project.com
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*