正如我在开发过程中设置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);
我做错了什么或者怎么可能没有给出错误?