mysql_fetch_row()不是有效的结果资源

时间:2012-10-17 14:56:44

标签: php mysql sql rows

我很困惑,我不知道什么是错的。我准备将我的第一张表中的所有数据传输到另一张表。这是我的代码:

$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 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您正尝试在3个字段中插入1个值。每个字段需要有1个值。例如:

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

$query = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) 
                                    VALUES ('$quantity','$description','$total'))

答案 2 :(得分: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);

这会给你一条消息,比如“数量与列数不匹配”,这会给你一个关于错误的提示。

答案 3 :(得分:0)

试试这个:

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

mysql_query($query);