PHP如何引用字符串数组值

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)

edm*_*rce 6

同意你应该查看准备好的陈述,但是为了回答你原来的问题,你可以这样做:

$array=array('a', 'b', 'c');

$string = "'" . implode("','", $array) . "'";
Run Code Online (Sandbox Code Playgroud)


Lar*_*ert 5

更好地使用预备查询.但只是为了乐趣:

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)