2016-03-28 33 views
0

複数のポスターで投稿を見つけるために動的WHERE句を作成します。これはこれまでの私のコードです。PHP/MySQLi WHERE句にWHERE句を使用してプリペアドステートメントを使用

$in = join(',', array_fill(0, count($myArray), "?")); 
$query = "SELECT * FROM posts WHERE poster IN ($in)"; 
$statement = $conn->prepare($query); 
$statement->bind_param(str_repeat("s", count($myArray)), ...$myArray); 
$statement->execute(); 
$result = $statement->get_result(); 

上記のコードは動作していますが、私の配列内の最初の人のみです。アレイに掲載されているすべての人からどのように投稿を受け取ることができますか?

+0

を使用して、これを答えることができないよう –

+0

を文字列を構築し、$クエリに追加し練習の問題として、エイリアスは使用しないでください。 [join](http://php.net/manual/en/function.join.php)は、[implode]の別名です(http://php.net/manual/en/function.implode.php)。今はうまくいくかもしれませんが、何らかの理由でエイリアスを非難することを決定するまで待っています(起こります)。 –

+0

たとえば、$ myArrayはArray([0] => krithik [1] => alex)です。 $ myArrayにはユーザーのユーザー名の文字列が含まれています。 – zam

答えて

-4

....あなたは私たちに `$ myArray`であるかのアイデアを与えるまで、foreachループ

$where = "where poster IN (" 
foreach ($myArray as $value) { 
    $where = $where + "'" + $value + "'" 
} 
$where = $where + ")" 
+0

ネガティブ。 PHPでは連結のために '+'を使用しません(javascriptです)。さらに、セミコロンも必要です。プラス 'AS 'のようなCAP CASEキーワード –

+1

これは、プリペアドステートメントの使用目的をすべて破っています。これをお勧めしないでください。 – tadman

関連する問題