4

開発中と同様にerror_reporting(-1);、すべての構文エラーが PHP によって表示されるように設定しました。それは例えば

echo $ttt;

もちろんそれは与える

Notice: Undefined variable: ttt in ...

このコード部分 (mysql テーブルの行を表すクラスの一部):

public function delete(){
// ...
  $sth=$dbh->prepare('DELETE FROM tobjects WHERE IdObject=:id');
  $sth->bindParam(':id',$this->fid,PDO::PARAM_INT);
  $sth->execute();

現在$this->fidのタイプを打ち間違えても削除は行われず、エラーにも気付かず、見つけるのに長い時間を費やしました。

は、別の$dbh場所で次のように設定されています。

$dbh=new PDO("mysql:host=XXXX;port=XXXX;dbname=XXXX",$db_user,
$db_password,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

私は何か間違ったことをしていますか、またはエラーが発生しなかった可能性はありますか?

4

1 に答える 1

4

bindParamの引数は参照として渡されるため、通知は表示されません。

function test(&$var) {
    // var may also be undefined
    var_dump($var);
}

test($undef);

これはエラーをスローしません。Doc:リファレンスの機能

于 2013-03-09T22:27:16.980 に答える