【发布时间】:2014-02-27 01:24:21
【问题描述】:
如果我有以下数组 $array[0] = array(
"1" => bar,
"2" => foo,
"3" => 13546
); 并且我 implode() 它,则返回的值将是: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)";
【问题讨论】:
-
这不是你想要的。您应该使用准备好的查询。
-
您能详细说明一下吗?
-
谷歌可以,
prepared statements -
看看uk1.php.net/pdo 和准备好的语句。