我已经在网站上阅读了类似的问题。但我仍然无法找到问题所在。我想复制表格中的数据" main"到表" metro"并再添加一列。但是该法规没有运行且没有错误提示。
$s_id=crypt($myid);
$result = mysqli_query($link, "INSERT INTO users (username, password, s_id, email, dob) VALUES ('$myid', '$mypw', '$s_id', '$email', STR_TO_DATE('$dob', '%d/%m/%Y'));");
$result = mysqli_query($link, "SELECT user_id FROM users WHERE username='$myid'");
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
$user_id=$row["user_id"];
//below is the statment which can't be perform.
$result = mysqli_query($link, "INSERT INTO metro (ID, Row, Column, Caption, link, Ico, Size, Color, user_id) SELECT ID, Row, Column, Caption, link, Ico, Size, Color, '$user_id' FROM main");
表"主要"只有这个领域
(ID,Row,Column,Caption,link,Ico,Size,Color)
表" metro"只有上面的字段和字段(user_id)
我试图运行这个声明
INSERT INTO...
在phpmyadmin
错误消息显示"#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在正确的语法附近使用
'Column, Caption, link, Ico, Size, Color, user_id) SELECT ID, Row, Column, Captio' at line 1"
我想知道字段名称Row
和Column
是否为关键字。这两个词的颜色变成了红色。
答案 0 :(得分:1)
至少在ANSI SQL中row
和column
是保留字,因此这些列名需要用双引号分隔为"Row"
和"Column"
:
INSERT INTO metro (ID, "Row", "Column", Caption, link, Ico, Size, Color, user_id)
SELECT ID, "Row", "Column", Caption, link, Ico, Size, Color, '$user_id' FROM main
也许MySQL想要回拨而不是双引号?