2016-04-06 7 views
0

forループでwhere句が生成されるmysqliクエリがあります。したがって、パラメータは実行時には認識されません。mysqli bind_paramを動的に使用する方法

この場合、どうすればmysqli bind_paramメソッドを使用できますか?

forループでパラメーターを1つずつバインドすることはできますか?

+2

はい。あなたは... – Neal

+1

はい、おそらくあなたが念頭に置いているループにはありません。コードを表示できますか? – fusion3k

+0

@neal No.あなたはできません –

答えて

3

はい、それは最初にあなたがどのように多くのParaments str_repeat()count()あなたが助け、開梱作業(...)あまりにも、ので、この方法は、makeがdynimic的に結合可能であることを知って必要がある、可能とphp5.6と非常に簡単です。

$params = [10, 50, 51, 99]; 
$types = str_repeat('i',count($params)); 

$stmt = $mysqli->prepare("SELECT * FROM t WHERE id IN (?,?,?,?)"); 
$stmt->bind_param($types, ...$params); 
if(!$stmt->excute()){ 
    echo mysqli_error($con); 
} 
+0

何が問題なのですか?間違っている?何かが欠けている? – rray

+0

コードは大丈夫です。コメントの票によって判断すると、この機能の仕組みが分からない人がいるので、投票してください。 –

+0

@ YourCommonSenseあなたはこの場合アンパックの引数がうまくいくことを知っています。私は、欠けているか、答えを削除する場合は、より多くの情報を入れることができます。 – rray

関連する問題