我只需要将15个值的数组都插入到表中。 而我只是想知道是否有这样的事情:
INSERT INTO table VALUES($myarrayofvalues)
只是好奇,会非常有用。
更新:
只有一行,有15列。
答案 0 :(得分:3)
$query = "INSERT INTO table VALUES('" . implode("', '", $myarrayofvalues) . "')";
修改强>:
如果你还没有完成转义,你可以在上述声明之前在一个小循环中完成,例如:
foreach($myarrayofvalues as $k=>$v)
$myarrayofvalues[$k] = mysql_real_escape_string($v);
答案 1 :(得分:0)
虽然您可以通过 Rick 在答案中执行此操作,但它对SQL注入是开放的。
如果没有某种列映射,实际上没有良好的方法。这是状态元素1是字符串,元素2是整数。
因此,我看到两个选择:
逃避一切
$values = array();
foreach ($myarrayofvalues as $value) {
$column[] .= "'" . mysql_real_escape_string($value) . "'";
}
$sql = "INSERT INTO table VALUES(" . implode(',', $values) . ")";
编写完整的SQL语句
$sql = "INSERT INTO table (column1_string, column2_int, ...)
VALUES ('" . mysql_real_escape_string($myarray[0]) . "', " . (int)$myarray[1] . ", ...)
我更喜欢#2,因为它更易读,更不易碎。目前,如果您的架构或阵列发生更改,则代码会中断。