我在其他论坛上尝试过一堆灵魂,但总是会遇到错误。 这是使用hostgator和PHP 5.2的当前PHP代码
$insert = "INSERT INTO events (datecreated, fullname, email, title, url, picurl, desc, psw, skypeid, event) SELECT jvs.datecreated, jvs.fullname, jvs.email, jvs.title, jvs.url, jvs.picurl, jvs.desc, jvs.psw, jvs.skypeid, jvs.event FROM jvs";
if (! mysqli_query($dbh, $insert) || mysqli_affected_rows($dbh) == 0)
{
die ("<BR><BR><BR>Failed to insert data- " . mysqli_error($dbh));
}
我得到的错误是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'desc,psw,skypeid,event)SELECT jvs.datecreated,jvs.fullname, jvs.email,jvs。'在第1行
我检查了两个表中的每个字段,拼写是正确的,文件是在那里。 事件表中的fileds不是相同的顺序,并且该表还有更多字段。 谢谢, 编
答案 0 :(得分:3)
DESC
是MySQL保留关键字。您应该使用backtick
转义,例如
INSERT INTO tableName(......, `desc`, .....)
SELECT ...
答案 1 :(得分:0)
1。请参阅 desc ,desc是一个保留字并作为语句重新加入,您必须向其添加反引号。
2。您必须在两个查询(INSERT INTO
和SELECT
)之间添加分隔符
3。您的VALUES
,INSERT INTO
必须包含VALUES
修复代码是:
$insert = "INSERT INTO events (`datecreated`, `fullname`, `email`, `title`, `url`, `picurl`, `desc`, `psw`, `skypeid`, `event`) VALUES('datecreated', 'fullname', 'email', 'title', 'url', 'picurl', 'desc', 'psw', 'skypeid', 'event');
SELECT jvs.datecreated, jvs.fullname, jvs.email, jvs.title, jvs.url, jvs.picurl, jvs.desc, jvs.psw, jvs.skypeid, jvs.event FROM jvs";
if (! mysqli_query($dbh, $insert) || mysqli_affected_rows($dbh) == 0){
die ("<BR><BR><BR>Failed to insert data- " . mysqli_error($dbh));
}