Are*_*una 1 php mysql arrays string
如果我有以下数组$array[0] = array(
"1" => bar,
"2" => foo,
"3" => 13546
);并且我内含()它,则返回的值将是:bar,foo,13546不能在mysql查询中使用...如何将单引号仅放置到字符串的值...
我尝试了几种方法(比如foreach($array as $key=>$value)检查is_numeric()$ value,检查没问题,但我不知道如何将值更改为'$ value'...)
对此有何不妥?
编辑
我发现另一种方法可以帮助那些感兴趣的人:
$result[0] = array(
"1" => bar,
"2" => foo,
"3" => 1232.13
);
$copy_r = $result[0];
foreach($copy_r as $key=>$value)
{
if(!is_numeric($value))
{
$insert_array[] = "`$key` = '$value'";
}
else
{
$insert_array[] = "`$key` = $value";
}
}
$final_string = implode(',', $insert_array);
$insert_q = "INSERT INTO `table_name` SET $final_string
ON DUPLICATE KEY UPDATE ($final_string)";
Run Code Online (Sandbox Code Playgroud)
同意你应该查看准备好的陈述,但是为了回答你原来的问题,你可以这样做:
$array=array('a', 'b', 'c');
$string = "'" . implode("','", $array) . "'";
Run Code Online (Sandbox Code Playgroud)
更好地使用预备查询.但只是为了乐趣:
implode(',', array_map(function($value) {
if(!is_numeric($value)) {
return '"' . $value . '"';
//adds double quotes, but if you prefer single quotes, use:
//return "'" . $value . "'";
} else {
return $value;
}
}, $array[0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11101 次 |
| 最近记录: |