1
$brand_condition = ' AND ' . mysql_real_escape_string($brand_selection) . ' IN ';

$brand_condition .= $quote10 . '"'. mysql_real_escape_string($brand_value) . '"' .$quote9;

$brand_conditions[] = $brand_condition;

$query .= implode(' AND ', $brand_conditions) . '';

これにより、次のものが生成されます。ANDメーカーIN( "brand1、brand2")

INステートメントを使用しているので、値を引用符で囲む必要があります。同時に、mysql_real_escape_stringを使用して潜在的な引用符をエスケープしています。

誰かがこの小さな問題を回避する簡単な方法を見ていますか?

4

5 に答える 5

3
function quote_escape(&$str) {
    $str = '"' . mysql_real_escape_string(chop($str)) . '"';
}

$brands = explode(',', $brand_value);
array_walk($brands, "quote_escape");
$brands = implode(',', $brands);

また

function quote_escape($str) {
     return '"' . mysql_real_escape_string(chop($str)) . '"';
}
$brands = implode(',', array_map("quote_escape", explode(',', $brand_value)));
于 2011-07-26T15:24:28.787 に答える
2

$brand_conditions[] = '"'.$brand_condition.'"';配列にbrand_conditionを追加する直前に、引用符を追加するのはどうでしょうか。

于 2011-07-26T15:24:25.453 に答える
1
$concurrent_names = array("O'reilly", 'Tupac "MC New York" Shakur', 'Nemoden');
$escaped_concurrent_names = array_map('mysql_real_escape_string', $concurrent_names);
$condition = 'WHERE name in ("'.implode('", "', $escaped_concurrent_names).'")';
于 2011-07-26T15:22:48.217 に答える
0

これを使用して、内包された文字列の引用符を追加します。

$ values = implode( "'、'"、array_values($ values));

于 2014-03-18T10:13:21.277 に答える
-1
$brands=array(nokia,samsung,xiomi);

$brands=implode(" ',' ",$brand);

//$brands='nokia','samsung','xiomi';

WHERE column_name IN ($brands)
于 2017-03-09T09:03:19.553 に答える