我只有一个由15个值组成的数组,这些值都需要插入到表中。我只是想知道是否有这样的东西:
INSERT INTO table VALUES($myarrayofvalues)
只是好奇,会很有用。
更新:
只有一行15列。
$query = "INSERT INTO table VALUES('" . implode("', '", $myarrayofvalues) . "')";
编辑:
如果你还没有完成转义,你可以在上面的语句之前的一个小循环中完成,比如:
foreach($myarrayofvalues as $k=>$v)
$myarrayofvalues[$k] = mysql_real_escape_string($v);
虽然您可以执行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,因为它可读性更强,不那么脆。当前,如果您的架构或数组发生更改,则代码会中断。