4
在开发过程中,我设置了error_reporting(-1);
,所以我确信每个语法错误都会由PHP显示。这是,例如PDO bindParam是否允许不存在的变量?
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);
难道我做错了什么或怎么可能这是给没有错误?
*“我是否做错了什么?”*,以及您将错误模式设置为异常,但不使用任何try/catch块来捕获这些异常... – 2013-03-09 22:21:06
这不是PDO,应该给出关于这个的错误。正如在你的回声声明中,应该报告它是php。 – 2013-03-09 22:21:54
是的,但为什么PHP不显示通知:未定义的变量? – Voitcus 2013-03-09 22:23:37