趣味のPHP |→お問い合わせ趣味のPHP
  1. ホーム
  2. 失敗から学ぶPHP
《記事番号:56》 2021-12-03 16:27:46
最近の、別の記事を探す

【タイトル】
PDO_MYSQLでInvalid parameter number
【キーワード】
MYSQL,PDO,Invalid parameter number,クォート,リテラル,union
【内容】
bindValueとexecuteの二つでInvalid parameter numberのエラーが出ました。
(1)bindValue
 SQL中に :***(***は例)と書くべき所を ':***' と書いていました。''で囲むとリテラルになり、パラメタになってないので、(bindすべきパラメタがない)Invalid parameter numberとなりました。
(2)execute
 同じ構造の複数テーブルからunionで検索するSQLを以下のように書いていました。
 select ... where ... regdate = :date union ...where ... regdate = :date... (regdate,:dateは例)
推測ですが、bindValueは一つのパラメタしか置換しないので、後ろの:dateが残ったままexecuteを実行すると、Invalid parameter numberを出すようです。テーブルごとに:date*(*はテーブルごとにユニークになる値)にして解決出来ました。
更新日 2021-12-03
検索


OR検索AND検索
検索方法の違い


更新履歴
追加・更新されたブロックの内容を自動的に表示しています。
メニュー
このサイトは
XOOPSのブロック管理の考え方を参考にして作った自作ツールで作成しています。

このサイトは、全ページどのページからでもリンクフリーです。
このサイトは
 2023/1/6から、このサイトを「パソコンよろず攻防」から「趣味のPHP」に変更しました。過去の記事に現れる、パソコンよろず攻防の文言はそのままにしてあります。
PHPのバージョンアップ