2017-01-31 9 views
0

私は数字の配列を持っています。mysqlデータベース内のテーブルから別個のクリエータを取得しようとしています。文字列を直接入力するとデータが得られますが、このメソッドを使用して配列とbind_paramを暗黙にすると、ゼロの行が得られます。データがあるときにPHPのMySQLがゼロになる

$array = array('1','2','3','4','5','6','7'); 
$in_array = "'".implode("','", $array)."'"; 

$statement = $conn->prepare("select distinct creator from table where coll in (?);"); 
     $statement->bind_param('s', $in_array); 
     $statement->execute(); 
     $result = $statement->get_result(); 
     if ($result->num_rows > 0) { //do something } 
     else { echo "none found"; } 
+0

try:$ in_array = '".implode("'、 '"、$ array)。"; – brotherperes

答えて

1

リスト全体の1つではなく、リスト内の各アイテムのプレースホルダーが必要です。

+0

本当ですか?それは私には分かりません。 – Strawberry

+1

@Strawberry - うまくいくはずです。 1つのプレースホルダが機能しないのは、複数の値ではなく、1つの文字列 '' 1,2,3,4,5、... ''とみなされるためです。 –

+0

@MagnusEriksson(手続き型のメソッドとは逆の)私はループ内でリストをバインドして実行すると思われます。 – Strawberry

関連する問題