我收到以下错误:列数与此查询中第 1 行的值数不匹配:
$movetohistory = mysql_query("INSERT INTO $storehistory SELECT * FROM $storetbl WHERE $time - datecreated >= 432000") or die ("Query failed: " . mysql_error() . " Actual query: " . $query);
我已经回显了 $storehistory、$storetbl、$time & 一切正常。两个表都具有相同的列/数据类型。我唯一可以假设的是,由于 $storetbl 没有填写所有字段,因此出现列数错误。但是,我认为指定 SELECT *ALL 会超过它。
如果您能指出正确的方向,我将不胜感激。如果您需要更多片段,请告诉我。
谢谢。
最佳答案
因为您的子查询返回的列多于可以插入的列:
INSERT INTO $storehistory SELECT * FROM $storetbl WHERE $time - datecreated >= 432000"
为清楚起见,您应该将子查询括起来:
INSERT INTO $storehistory (SELECT * FROM $storetbl WHERE $time - datecreated >= 432000)"
编辑:
我刚刚执行了这个查询,它完美地处理了两个相同的表:
insert into users_copy select * from users
我会仔细检查您的数据结构是否相同。
关于php - 列数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1026238/