【发布时间】:2015-05-05 15:22:14
【问题描述】:
所以我试图从一个包含多个数组的数组中插入数据到 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,'','','','','')
【问题讨论】: