0 レビュー
2 回答
php-未定義の変数はバインドパラメータでは許可されていません->エラーを取得する方法
簡単なコードがあります:
$SQL = $db->prepare(
"INSERT INTO tbl_signup (full_name,email,telephone,password) VALUES (?,?,?,?)");
$SQL->bind_param('ssss', $full_name, $signup_email,$telephone, $password);
$SQL->execute();
このコードは機能しません。 bddに行が挿入されていません。エラーはありません。何もありません。
前に追加した場合:
$full_name = $signup_email = $telephone = $password = "";
コードは機能します。
結論:未定義の変数はbindparamでは許可されていません。
しかし、私の場合、エラーを取得するにはどうすればよいですか??
すべて試しました:
$SQL->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$SQL->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$SQL->execute();
echo "\nPDO::errorCode(): ", $SQL->errorCode();
print_r($SQL->errorInfo());
$SQL->debugDumpParams();
しかし、エラーはありません。
エラーを取得する方法は?
わからない
0
レビュー
答え :
解決策:
最初の問題は、mysqli(実際に使用している)とPDOを混同してしまったことです。
2番目の問題は、結論が間違っていることです。 SELECTクエリを実行している場合、クエリは正常に実行されていることがわかります。
3番目の問題は、mysqliエラーレポートがないことです。接続する前に次の行を追加してください:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
そして、mysqlエラーがPHP例外に変換されているのを見ることができます。ほとんどの場合、nullが許可されていないときにnull値を挿入することになります
わからない
0
レビュー
答え :
解決策:
確認してください: http://php.net/manual/en/pdo.error-handling.php
そしてそこに: http://php.net/manual/en/class.pdoexception.php
コードを次のように書き直します:
try {
<..>
$SQL->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$SQL->execute();
} catch (PDOException $e) {
echo 'Something wrong: ' . $e->getMessage();
}
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。