SQLの実行中にエラーを感知するため、
MySQLiのプリペアドステートメントにおいて返り値を使っています。
$stmt = $db->stmt_init(); if($stmt->prepare("INSERT INTO mytable VALUES (1,2,3)")) { $stmt->execute(); $stmt->close(); } else echo("ステートメントは失敗しました: ". $stmt->error . "<br>");
しかし、プリペアドステートメントの返り値はSQLステートメントの準備段階で
エラーがあるかどうかを感知しているだけで、実行した際のエラーは感知していないようなのです。
であれば、エラーをフラグするために実行ラインを下のように変更したほうがいいでしょうか。
if($stmt->execute()) $error=true;
また、ステートメントが安全に実行されるためにに下記のものも設定したほうがいいでしょうか。
if($stmt->errno) {$error=true;}
それとも、最初のMySQLiの'prepare'ステートメントの返り値を使っているので大丈夫なのでしょうか。
色々うかがい申し訳ないのですが、アドバイスをお願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。