実行($arr);if($t"/> 実行($arr);if($t">

ホームページ  >  記事  >  バックエンド開発  >  pdo は prepare を使用して insert を実行し、レコードの追加に失敗しますが、例外はキャッチされません。

pdo は prepare を使用して insert を実行し、レコードの追加に失敗しますが、例外はキャッチされません。

WBOY
WBOYオリジナル
2016-06-13 12:22:491258ブラウズ

pdo は prepare を使用して挿入を実行しますが、レコードの追加に失敗しますが、エラーはキャプチャされません
$st = $this->gt;pdo->prepare("insert into $tablename ($field) names($code)" );
$st->execute($arr);
if ($this->pdo->errorCode() != '00000')test($this->pdo->gt; errorInfo() );
return $this->pdo->lastInsertId();

null にできないフィールドに意図的に null 値を与え、上記の後にエラーが発生しないコードは実行されますが (出力 errorCode() も = '00000')、pdo->lastInsertId() は 0 を返します。データベースを開いて確認すると、新しいレコードが正常に追加されません。エラー プロンプトを表示する方法。この種の PDO 前処理 SQL の場合はどうすればよいでしょうか?
------解決策のアイデア----------------------

if ($st->errorCode() != '00000') test($st->errorInfo());


または $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
、例外処理を使用します
try {<br />  ....<br />  $st->execute($arr);<br />  ....<br />} catch (PDOException $e) {<br />  print "Error!: " . $e->getMessage() . "\n";<br />}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。