MySQL使用空值插入错误

时间:2015-05-05 15:22:14

标签: php mysql

所以我试图从包含多个数组的数组中将数据插入到MySQL表中,这些数组使用以下代码保存表的每一行的数据:

if (is_array($tbl_data)){
$sql = "INSERT INTO teshsting (agent, event , data1,data2,data3,data4,data5) values ";  
$arrayValues = array();
foreach ($tbl_data as $row){

    $agent = mysql_real_escape_string($row[0]);
    $event = mysql_real_escape_string($row[1]);
    $data1 = mysql_real_escape_string($row[2]);
    $data2 = mysql_real_escape_string($row[3]);
    $data3 = mysql_real_escape_string($row[4]);
    $data4 = mysql_real_escape_string($row[5]);
    $data5 = mysql_real_escape_string($row[6]);

    $value = "($agent,$event,$data1,$data2,$data3,$data4,$data5)";
    array_push($arrayValues, $value);
}   
$sql .=implode(',', $arrayValues);

使用var_dum($sql)进行快速检查会产生以下结果:

INSERT INTO teshsting (agent, event , data1,data2,data3,data4,data5) values (NONE,QUEUESTART,,,,,)/////

由于此处有多个逗号,上述Sql无效:(NONE,QUEUESTART,,,,,)由空字段生成。如何在查询中插入单引号以使其有效?即正确的sql语法:

INSERT INTO teshsting (agent, event , data1,data2,data3,data4,data5) values (NONE,QUEUESTART,'','','','','')

1 个答案:

答案 0 :(得分:2)

或者:

$data1 = "'" . mysql_real_escape_string($foo) . "'";

$value = "(...,'$data1',...)";

只是不要尝试这两个选项,这会给你(...,''$data1'',...)并使用语法错误终止查询。