0

重複の可能性:
PHP PDO: 配列を IN() 条件にバインドできますか?

私は趣味で PHP と MySQL を使用して Web サイトを作成しただけで、昨夜 PDO クエリを試すことにするまで、準備の整っていないステートメントを常に使用してきました。IN() を使用する場合を除いて、すべて正常に動作するようになりました。たとえば、私がこれを行うとき:

$stmt3 = $dbConnection->prepare("SELECT * FROM member_search WHERE zip IN(:zip_codes_in_distance)");
$stmt3->execute(array(':zip_codes_in_distance' =>   $zip_codes_in_distance ));
foreach ($stmt3 as $user_list) {
   //do cool stuff here
}

これにより、次のエラーが返されます。

Syntax error or access violation: 1064

query()グーグルで調べた後、代わりに使用するようないくつかのソリューションを試してみましたが、成功しませんでしたexecute()

これは、私が使用するときにのみ発生しますIN()

これら$zip_codes_in_distanceは、「07110」、「07109」、「07050」の形式の郵便番号です。

私は何を間違っていますか?

4

1 に答える 1

0

PDO を使用してこれを正しく動作させることができなかったので、代わりに MySQLi を使用しました。別のファイルでデータベース接続を確立します。

$Connect = new mysqli($host, DB_Username, DB_password, DB_Name);

次のようにクエリを実行します。

include 'DbConnectFIle.php';
$zips = "07110, 07109";
$sql = "SELECT * FROM table WHERE zip IN(".$zips.") ";
        $result = $Connect->query($sql);
        while($row = $result->fetch_assoc()){
                     $MemberName = $row['first_name'];
        }
$Connect->close();

echo $MemberName;

PDO を使用して 4 時間試してみましたが、MySQLi が唯一の方法でした。このチュートリアルを使用しました: http://codular.com/php-mysqli

于 2012-10-05T07:27:45.330 に答える