从选择的查询结果中插入数据并添加新列

时间:2016-01-25 11:30:55

标签: mysql sql select insert

我已经在网站上阅读了类似的问题。但我仍然无法找到问题所在。我想复制表格中的数据" 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"
 我想知道字段名称RowColumn是否为关键字。这两个词的颜色变成了红色。

1 个答案:

答案 0 :(得分:1)

至少在ANSI SQL中rowcolumn是保留字,因此这些列名需要用双引号分隔为"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想要回拨而不是双引号?