0
4

3 に答える 3

3

array_map()配列のすべての要素に対して関数を呼び出すことができます。

$tag_array = array_map ( function($var) {
  return "'" . mysql_real_escape_string($var) . "'";
}, $tag_array );

ただし、準備済みステートメント (まもなく非推奨になる関数の代わりにPDOまたはmysqlimysql_ ) を使用することをお勧めします。

于 2012-06-06T10:18:57.643 に答える
2

アップデート

先程の質問を読み間違えました。

クエリで使用する前に、配列内の個々の項目をエスケープする必要があります。

function apply_quotes($item)
{
    return "'" . mysql_real_escape_string($item) . "'";
}

$list = array('3D', '瑪丹娜','電影','情報','大獨裁');

$list = array_map('apply_quotes', $list);

次に、クエリを作成します。

$query = "select * FROM news WHERE upordown = 1 AND tagkey IN (" . 
    join(',', $list) . 
    ") AND id <> $id ORDER BY udate DESC";

すべてのアイテムが配列ではなく文字列内にある場合は、最初にそれを配列に変換する必要があります。

$list = explode(',', '3D,瑪丹娜,電影,情報,大獨裁');

mysql_関数を使用していると仮定しています。そうでない場合は、お知らせください:)

于 2012-06-06T10:29:58.707 に答える
-1

あなたの質問は明確ではありませんが、このようにしてみてください;

$tag_array = array($line["tagkey"]);
$tag_str = implode(" ", array($line["tagkey"]));
echo $tag_str;
$query = "select * FROM news WHERE upordown = 1 AND tagkey IN ('".$tag_str."') AND id <> '".$id."' ORDER BY udate DESC ";
于 2012-06-06T10:16:50.277 に答える