古典的なPHP mysqlでSQL構文にエラーが発生した場合、そのクエリは他の効果なしには実行されません。しかし、mysqliではPHPスクリプトを致命的なエラーで終了させますPHP mysqliで非オブジェクトエラーをスキップする方法は?
mysql_query("SELECT title, misspelled_column FROM posts");
$mysqli->query("SELECT title, misspelled_column FROM posts");
最初のケースでは、他のクエリとPHP出力が表示されます。しかし、後者の場合は、問題が偽のクエリによって返さnon-object
に関連している
Fatal error: Call to a member function fetch_assoc() on a non-object
でスクリプトを殺します。私は
if($result){$row = $result->fetch_assoc();}
によって、このエラーをスキップすることができますが、私の質問は、なぜ私は古典的なmysql
には、このチェックを必要としなかったということでしょうか?より高度なシステムでは、私たちが持っていたものを見逃すことのない新しい機能が期待されます。
は、エラーを修正します。問題が解決しました。 –
MySQLの構文エラーを処理する必要はありません。これは、開発フェーズで処理する必要があるためです。そして、エラー抑制演算子をそのようなものに使用することは決してありません。 – rdlowrey
エラーメッセージを含めてください。 – kapa