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