【发布时间】:2013-02-22 11:06:12
【问题描述】:
我有一个结构如下的表
Bay | Slot1 | Slot 2 | Slot 3 | Slot 4 | Slot 5
-----------------------------------------------
1 | time1 | time 2 | time 3 | time 4 | time 5
以下代码用于插入:
for ($i =1; $i <= $bayCount; $i++) {
mysql_query("INSERT INTO $tableName (Bay) VALUES ($i)");
for ($j=0; $j<$slotCount ; $j++) {
echo $i;
echo $_slotColumns[$j];
mysql_query("INSERT INTO $tableName ($_slotColumns[$j]) VALUES (slotValues[$j]) WHERE Bay = $i ");
}
}
bay 是一个增量类型的整数,并且槽的值作为数组传递 (slotValues[$j]) 槽列是使用 for 循环插入生成的。插槽值是文本类型。有人可以告诉我发生了什么吗?插入托架值但不插入槽值。我做错什么了吗?
【问题讨论】:
-
您应该查看 SQL 语法的基础知识。
INSERT向数据库添加了一个新行并且没有WHERE。你需要的是UPDATE。尽管一次创建整个查询会更好。最好的办法是手动写出完整的查询,然后检查需要更改的部分。也不推荐使用mysql_query。查看mysqli或PDO -
在其中一个循环中
slotColumns和slotValues的值是什么? -
@Steve 我将数字 5 作为插槽计数传递给迭代以获取插槽列,插槽值是 time1 time 2 ...