2011-07-26 6 views
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) . ''; 

:INとメーカー( "brand1、brand2")私がINステートメントを使用していますのでPHPの破引用符で囲まれた文字列これは、生産

は、私は値を引用符で囲む必要があります。同時に、私はmysql_real_escape_stringで潜在的な引用符をエスケープしています。

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

答えて

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))); 
+0

これをarray_walkからarray_mapに変更し、繰り返し割り当てを削除すると、私のupvoteが作成されます。 –

+0

私はそれがOPのための読解可能な解決策であるかどうかはわかりませんが、あなたが望むように:P –

+0

正確にANDステートメントを配置するはずですか? –

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).'")'; 
2

どの程度$brand_conditions[] = '"'.$brand_condition.'"';ので、あなたのあなたの配列にbrand_conditionを追加するには、右の前に引用符を追加します。

0

爆縮文字列の引用符を追加するために使用します。

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

-1
$brands=array(nokia,samsung,xiomi); 

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

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

WHERE column_name IN ($brands) 
関連する問題