2016-04-27 3 views
0

MySqlについて少し奇妙な質問があります。私はテーブルの名前付きの追加を持っており、そのテーブルには場所が格納されている場所のフィールドがあります。場所フィールドの値は、idsの場所のシリアル化された配列(e.t.c配列( '1'、 '3'、 '4'))と等しくなります。また、私は検索フォームを持っていると私は一度に1つ以上のフィールドを検索したいと思います。 例:ID( '3'、 '6'、 '8'など)のある場所を探してください。 このようにmysqlを使ってクエリを実行すると、エラーがスローされます。mysqlフィールドで配列関数を使用する

$val=array('3', '6', '8'); 
mysql_query("Select * from add where active='active' && array_intersect(unserialize(places))"); 

どのようにクエリを実行できますか? MySqlでストアドプロシージャや関数を使用することは可能でしょうか?

答えて

0

implodeを使用して、使用可能な文字列にする必要があります。これは想定していた値のあなたの配列は(すなわちないフォームを送信し、ユーザから)完全に信頼できる

$val=array('3', '6', '8'); 
mysql_query("Select * from add where active='active' AND ID IN (" . implode(',', $val) . ")"; 

mysql_ functions have been removed from PHP

+0

いいえ、私はしたいことはそれではないことに注意してください。ここでIDの値はシリアル化された配列です。 idが単一の数ではないと仮定します。ここでIDは直列化された配列です。 ID配列にval配列のインデックスがいくつか存在するかどうかを選択する必要があります –

+0

ありがとう –

関連する問題