目次一覧
状態:-
閲覧数:1,981
投稿日:2020-05-13
更新日:2022-12-01
エラーメッセージ / エラー原因 / 遭遇例 1
遭遇例 2
遭遇例 3
遭遇例 2
遭遇例 3
エラーメッセージ / エラー原因 / 遭遇例 1
エラーメッセージ
無効なパラメータ番号:パラメータが定義されていない
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in
エラー原因
パラメータがおかしい。
正常に渡せていない
遭遇例 1
エラーメッセージ
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/xxxx/core/DbRepository.php on line 42
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/xxxx/core/DbRepository.php on line 42
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/xxxx/core/DbRepository.php on line 42
エラー発生するコード
public function update_update_datetime($topicId)
{
$todayDateTime = new DateTime();
$sql = "UPDATE topic
SET update_datetime=:updateDatetime
WHERE id=:topicId";
$stmt = $this->execute($sql, array(
':updateDatetime' => $todayDateTime->format('Y-m-d H:i:s'),
':topicId ' => $topicId
));
}
修正例
修正前。末尾に余計な空白がある。
':topicId '
修正後
':topicId'
受け取った変数を反映させた最終SQLを確認不可なので苦労した
遭遇例 2
遭遇例 2
エラーメッセージ
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /XXX/core/DbRepository.php on line 42
エラー発生するコード
public function insertImgByTagId($tagId,$filename,$ext)
{
$sql = "UPDATE tag
SET filename=:filename,ext=: ext
WHERE tag_id=:tag_id";
$stmt = $this->execute($sql, array(
':tag_id' => $tagId,
':filename' => $filename,
':ext' => $ext,
));
}
デバッグ表示したSQL文
余計な空白
UPDATE tag SET filename=:filename,ext=: ext WHERE tag_id=:tag_id
修正例
修正前。「:」と「ext」の間に、余計な空白がある。
UPDATE tag
SET filename=:filename,ext=: ext
WHERE tag_id=:tag_id";
修正後
UPDATE tag
SET filename=:filename,ext=:ext
WHERE tag_id=:tag_id";
遭遇例 3
遭遇例 3
エラーメッセージ
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
エラー発生するコード
$sql = "UPDATE tag SET tag_zip:tag_zip, tag_description=:tag_description WHERE tag_id=:tag_id";
修正例
修正前。「=」が抜けている。
tag_zip:tag_zip,
修正後
tag_zip=:tag_zip,