PHP взорвать строку в кавычках - PullRequest
1 голос
/ 26 июля 2011
$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) . '';

Это производит: И производитель IN ("brand1, brand2")

Поскольку я использую оператор IN, мне нужны значения в кавычках. В то же время я избегаю потенциальных цитат с mysql_real_escape_string.

Кто-нибудь видит простой способ обойти эту маленькую проблему?

Ответы [ 5 ]

3 голосов
/ 26 июля 2011
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)));
2 голосов
/ 26 июля 2011

Как насчет $brand_conditions[] = '"'.$brand_condition.'"';, поэтому добавляйте кавычки прямо перед тем, как добавить brand_condition в ваш массив.

1 голос
/ 26 июля 2011
$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).'")';
0 голосов
/ 09 марта 2017
$brands=array(nokia,samsung,xiomi);

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

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

WHERE column_name IN ($brands)
0 голосов
/ 18 марта 2014

Используйте это, чтобы добавить кавычки для взорванной строки.

$ values ​​= implode ("','", array_values ​​($ values));

...