PHPで実行するためのSQL文を準備するために配列を使って、未知数のパラメータ(1-10)を渡そうとしています。N個のパラメータをPHPの準備済みSQL文に渡すには?
function executeStatement ($myArray) {
//for example, $myArray = ("one", "two", "three")
$qry = "SELECT * FROM table WHERE FieldA LIKE ".$myArray[0]." OR FieldA LIKE ".$myArray[1]." OR FieldA LIKE ".$myArray[2].";
$result = mysql_query($qry) or die("Query failed with error: ".mysql_error());
}
配列を使用してN個のパラメータを渡す効率的な方法はありますか?プリペアドステートメントでそれを行うには、私が正しく質問を理解していた場合、以下の
$queryStr = "SELECT * FROM `table` WHERE ";
foreach($myArray as $single){
$queryStr .= "$addStr`FieldA` LIKE '".mysql_real_escape_string($single)."'"; //Note the mysql_real_escape_string, this should help guard against sql injection
$addStr = ' OR ';
}
$query = mysql_query($queryStr) or die(mysql_error());
また働くべきか
完璧、おかげ:
LIKEはより次のようになります。これは私が意味していたものです。それぞれの後に%を追加して、意図したクエリにマッチさせました。 – sgb