エラーメッセージ
状態:-
閲覧数:2,131
投稿日:2014-10-14
更新日:2014-10-14
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /〇〇.php:△△
エラー内容
・定義した内容と値が異なる
エラー発生と思われる箇所
・プリペアドステートメント
解決方法
・重点的にプリペアドステートメントをチェック
・どうしても解決しないときは、プリペアドステートメントで指定する値を1つに絞る
・成功したら、徐々に指定する値を増やしていく
実際に遭遇した例
エラーメッセージ
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /〇〇.php:△△
エラーコード
「':elem_title' => $elem_title」であるべきはずが、「':eleme_title' => $elem_title」になっている
public function insert($entry_id,$entry_no,$elem_title,$elem_url)
{
$now = new DateTime();
$sql = "
INSERT INTO elem(entry_id,entry_no,elem_title,elem_url,created_at, modified)
VALUES(:entry_id,:entry_no,:elem_title,:elem_url, :created_at, :modified)
";
$stmt = $this->execute($sql, array(
':entry_id' => $entry_id,
':entry_no' => $entry_no,
':eleme_title' => $elem_title,
':elem_url' => $elem_url,
':created_at' => $now->format('Y-m-d H:i:s'),
':modified' => $now->format('Y-m-d H:i:s'),
;
修正コード
public function insert($entry_id,$entry_no,$elem_title,$elem_url)
{
$now = new DateTime();
$sql = "
INSERT INTO elem(entry_id,entry_no,elem_title,elem_url,created_at, modified)
VALUES(:entry_id,:entry_no,:elem_title,:elem_url, :created_at, :modified)
";
$stmt = $this->execute($sql, array(
':entry_id' => $entry_id,
':entry_no' => $entry_no,
':elem_title' => $elem_title,
':elem_url' => $elem_url,
':created_at' => $now->format('Y-m-d H:i:s'),
':modified' => $now->format('Y-m-d H:i:s'),
;