An error occurred substituting the named parameters
PHPでSQL文を実行したときに、以上のようなエラーが出た。
こちらは、翻訳すると
名前付きパラメーターの置換中にエラーが発生しました
とのこと。
Mixed named and positional parameters
これも、パラメータの場所と名前が混在している。 みたいな感じ。
つまり、バインドした値の置き換え中のエラー
原因としては、コロンとハテナ?を両方使って、SQL文を書いていたため起こった。
どちらか一方を使いなさいということ。
両方バインド変数として使えるが、
今回やっていたことは、
カラムの列名をあらかじめ文字列として、変数に入れていた。
$columns = :カラム名1, :カラム名2,…… ;
SELECT $columns FROM ……. というような感じ。
そのときに、コロンを含ませて、別の場所で、文字列検索やバインドで使おうとしていた。
フィールド参照かとも思ったが、OracleかAccessでしか使えない??
replaceでコロンを空白に置き換えて解決した。
bindValue()を使わなくても、コロンを認識するみたいですね。