1

我很困惑,我不知道怎么了。我即将将所有数据从我的第一个表转移到另一个表。这是我的代码:

$getdata = mysql_query("SELECT Quantity, Description, Total FROM ordercart");

while($row = mysql_fetch_row($getdata))
{
foreach($row as $cell){

$query1 = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell)",$connect);

}
mysql_free_result($getdata);
}

我收到错误:警告:mysql_fetch_row():5 不是有效的 MySQL 结果资源。

4

4 回答 4

5

您只在 中传递一个值INSERT,它期望将三个值传递给字段 Quantity, Description, Total

INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell);

将其更改为:

INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell, $descriptionParam, $totalParam);

您也可以尝试INSERT INTO SELECT直接使用,而不是像这样使用两个不同的语句:

INSERT INTO ordermem (Quantity, Description, Total)
SELECT Quantity, Description, Total FROM ordercart;
于 2012-10-17T14:58:53.623 回答
0

您正在尝试将 1 个值插入 3 个字段。您需要为每个字段设置 1 个值。例如:

$quantity="$_GET['qty']";
$description="$_GET['desc']";
$total="$_GET['total']";

$query = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) 
                                    VALUES ('$quantity','$description','$total'))
于 2012-10-17T15:25:41.070 回答
0

尝试这个 :

$query = "INSERT INTO ordermem (Quantity, Description, Total) SELECT Quantity, Description, Total FROM ordercart";

mysql_query($query);
于 2012-10-17T19:27:17.460 回答
0

使用调试来找出问题的根源。

mysql_query()返回一个布尔值,告诉您操作是否成功。如果没有成功,该mysql_error()函数会给出 mySQL 的错误消息。

例子:

$query1 = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) VALUES ($cell)",$connect);

if (!$query1)  
  trigger_error("mySQL Error: mySQL returned ".mysql_error(), E_USER_ERROR);

这将给您一条消息,例如“值的数量与列的数量不匹配”,它会提示您出了什么问题。

于 2012-10-17T16:57:27.940 回答