我很困惑,我不知道什么是错的。我准备将我的第一张表中的所有数据传输到另一张表。这是我的代码:
$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结果资源。
答案 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);