【发布时间】:2013-06-16 04:19:28
【问题描述】:
我在将 PHP 数组的内容写入 MySQL 表中的列的行时遇到了一些麻烦。不是每次都通过循环更新,而是一次又一次地将相同的内容插入数据库。
这是代码($code 是一个字符数组,$code_length 是它的长度):
for ($counter = 0; $counter < $this->code_length; $counter++){
$query = "INSERT INTO characters VALUES ('$this->code[$counter]')";
mysql_query($query, $db_server);
}
如果我这样执行它,它只会将$code 的第一个元素放在表格的每一行上。但是,如果我只是将其更改为使用对 SQL 查询之外的数组元素的引用,它就会起作用。例如:
for ($counter = 0; $counter < $this->code_length; $counter++){
$code_element = $this->code[$counter];
$query = "INSERT INTO characters VALUES ('$code_element')";
mysql_query($query, $db_server);
}
工作正常,并将$code 的每个新元素放在一个新行中。
任何人都可以看到我在第一个示例中做错了什么,或者您可以在 MySQL 查询中不以这种方式引用数组元素吗?
【问题讨论】:
-
为什么不用foreach?
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
谢谢,我没有为此查看文档 - 只是从一本(明显过时的)书中学习。我会更新到mysqli。
标签: php mysql sql arrays for-loop