Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/lib/utils.php on line 2620

Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/lib/utils.php on line 2620

Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/lib/utils.php on line 2648

ADODBでのWHERE句 IN演算子


Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/tmp/eye-catch.php on line 19

Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/tmp/eye-catch.php on line 20

Warning: Trying to access array offset on value of type bool in /home/c8105536/public_html/cafe-system.com/wp-content/themes/cocoon-master/tmp/eye-catch.php on line 21
MySQL

PHPのmysql関数で書かれているSQL文を
ADODBでの形に書き換えようと思ったときにつまづきました。

 
ADOでお馴染みの(?)prepareとexecuteを利用しようとして、
?を使ったクエリを作成しました。

$query = select * from [table] where [カラム] in ( ? ) ;

?に入るのは「1,2,3,4,5,6」という文字列。

これで実行すると・・・

沢山データがとれるはずがなぜか1つだけしかとれませんでした。

 
そこでexecuteされた結果をvar_dumpして、
実行されたSQL文を見てみると、

select * from [table] where [カラム] in ( ‘1,2,3,4,5,6’ ) ;

・・・文字列全体をクオートで囲ってしまっていました。

 
本来なら

select * from [table] where [カラム] in ( 1,2,3,4,5,6 ) ;

select * from [table] where [カラム] in ( ‘1’,’2′,’3′,’4′,’5′,’6′ ) ;

のどちらかでないといけないのですが・・・。

 
いろいろ調べましたが、結局分からずで
SQL文の中に関数を入れてしまいました。
(エスケープはもちろんしていますが・・・)

どなたかやり方をご存じの方、いらっしゃいませんか?(苦笑)

ADODBマニュアルをしっかり読めば書いてあるのだろうか・・・。

ADODBマニュアル
ADODBマニュアル
 

コメント

  1. maito より:

    カラムがchar型で、各文字列の後ろに余分なスペースが入っているのでは??

タイトルとURLをコピーしました