插入问题-通过PHP的MySQL

插入问题-通过PHP的MySQL,php,sql,insertion,Php,Sql,Insertion,我有一张结构如下的桌子 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 INT

我有一张结构如下的桌子

     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 ");
    }

  }

对于($i=1;$i当您在“”中使用数组变量时,请尝试将它们放入{}。{$\u slotcolumns[$j]}

我想您应该更新rater而不是在第二个循环中插入。GL!

您可能有引号问题:

mysql_query("INSERT INTO $tableName (".$_slotColumns[$j].") VALUES ('".slotValues[$j]."') WHERE Bay = $i ");
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]})");
}
}
或者你也可以:

mysql_query("INSERT INTO $tableName ({$_slotColumns[$j]}) VALUES ('{slotValues[$j]}') WHERE Bay = $i ");
您必须注意,普通查询需要这样的引号:

mysql_query("INSERT INTO $tableName (columnName) VALUES ('value') WHERE Bay = $i ");

删除第二条INSERT语句中的WHERE Bay=$i,这将始终为false,因为它不存在。在这种情况下,您不能在INSERT查询中使用WHERE,因为它将始终返回false

你还忘了在slotvalue前面加一个$符号。 在字符串中使用数组时,应始终在其周围放置{}。(例如{$\u slotColumns[$j]}

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]})");
}
}
对于($i=1;$i您有两个单独的插入,因此您将得到两个单独的行,第一行将只包含间隔

在我看来,您需要一个查询:


我不知道你想用
WHERE
做什么;这对
INSERT

没有任何意义。你应该检查SQL语法的基本知识。
INSERT
向数据库中添加新行,并且没有
WHERE
。你需要的是
更新
。尽管最好创建整个查询马上。最好的办法是手动写出完整的查询,然后检查需要修改的部分。也不要使用
mysql\u query
作为其弃用项。检查
mysqli
PDO
这是其中一个循环中的
slotColumns
slotvalue
的值吗?@Steve我将数字5作为slo传递t计算为迭代以获取插槽列,插槽值为time1乘以2…mysql_查询(“更新$tableName SET$\u slotColumns[$j]='$slotValues[$j]'其中Bay='$i');这很有效!更新而不是插入!非常感谢大家的帮助
$query = "INSERT INTO $tableName (Bay, " . implode(',', $_slotColumns) . ") ";
$query .= "VALUES(" . implode(',', $slotValues). ")";
mysql_query($query);