【发布时间】:2015-01-20 07:13:59
【问题描述】:
我创建了一个 for 循环,该循环遍历一个数组或从字符串分解的单词。 for 循环有效,并已通过 echo 语句进行测试。运行此代码时,它只将 1 条记录插入数据库,而不是数组中的字符串数。
$item=explode(" ", $items);
for ($i = 0; $i < count($item); ++$i) {
// Create connection
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO invlog (itemid, qty)
VALUES ('".$item[$i]."', '-1')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
【问题讨论】:
-
旁注:为什么不在循环之前取出该连接。无需每次迭代都连接/关闭
-
您是收到错误消息还是似乎在静默失败?
-
像这样为每次迭代连接和关闭是荒谬的。
-
没有错误。我也试过很多次把 close 和 conn 都移到外面,仍然有同样的问题
-
@chuckbeyor
$items包含什么?您也应该将其发布在问题中。如果引用其中一个词,那么您的查询将被搞砸。你应该绑定它们。