PDO で PHP オブジェクト指向を使用するアプリケーションに取り組んでいます。クエリの実行が失敗した理由の問題を見つけるのに何時間も苦労しました。配列にバインドする文字列形式のパラメーターとして値を指定したことがわかりました。すべてのパラメーターをクエリの疑問符プレースホルダーにバインドする一般的なループがあります。もちろん、パラメーターはすべて文字列形式であると見なされます。ただし、整数形式の列があります。(int)
orを使用して変数を整数にキャストしてもintval()
機能しませんでした。したがって、明示的なデータ型をに指定する必要があると思いますPDO::PDO_PARAM_INT
。しかし、私はすべてのクエリに対して次のようなコードを持っています:
クエリの例:
$this->db->query("INSERT INTO users (name, numberOfCar") VALUES (?,?) ,
array('Jake', 5));
bindValue() 部分:
$x = 1;
if( count($params) ){
foreach($params as $param){
$this->_query->bindValue($x, $param);
$x++;
}
}
どうすればいいですか?この問題を解決するためにコードを変更するにはどうすればよいですか? コードのどの部分を変更する必要があるかどうかはわかりませんが、これの回避策を考えるのは困惑しています。前もって感謝します。
編集: PHP バージョン 5.3.10、PDO は Sybase に接続します