(前のページの複数のチェック ボックスから) POST フォームを介して渡された複数の値があり、それらを配列 $vals に格納しました。ここで、ループのどこまで進んだかに応じて、わずかに異なるクエリを生成するクエリ文字列を (while ループで) 記述したいと考えています。
<?php
$vals=($_POST['selectedIDs']);
$i=0;
while($vals[$i] != NULL){
$query = "SELECT * FROM List foo WHERE foo.fooID = echo $vals[$i]";
$result = mysqli_query($link, $query);
if($result) echo "YES IT WORKS!";
$i += 1;
}?>
しかし、それはこのように動作しないようですか?クエリに二重引用符を付けることで、
echo $vals[$i]
リテラル文字列ではなく、現在のインデックスの実際の値を $vals[$i] に生成しますか? これは何が起こっているのですか?mysql サーバーが受け入れるクエリ文字列内に php を含めることはできませんか?
サーバーテーブルに「12345」のfooIDがあるとしましょう。$vals='12345' を設定して次のように書いても:
$query = "SELECT * FROM List foo WHERE foo.fooID = $vals";
$result = mysqli_query($link, $query);
if($result) echo "YES IT WORKS!";
それはまだ機能しません。私の一般的な質問は次のようになると思います:クエリ文字列で変数の値を書き込み/取得することは可能ですか?そうでない場合、私の状況を回避する別の方法はありますか? どんな助けでも大歓迎です。ありがとう!