我只需要将15个值的数组全部插入表中。 而我只是想知道,如果有这样的事:
INSERT INTO table VALUES($myarrayofvalues)
只是好奇,是非常有用的。
更新:
只有一行15列。
我只需要将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);
考虑SQL注入? – 2012-04-05 02:38:16
@Jason总是担心,是的。这个答案只是相对于没有预防的标题。没有线索哪里的变量或数组来自,对吗?它已经可以完成了。如果不是的话,那么在这种情况下,它必须在查询行之前完成,据我所知,但将是可迭代的,我认为这保持了OP正在寻找的好处。 – Rick 2012-04-05 02:42:01
当你可以通过来做什么显示在里克,它对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,因为它更具可读性不脆。目前如果您的模式或数组发生更改,您的代码会中断。
你想插入1行15列,或15列的一列吗? – 2012-04-05 02:31:28