PHP MYSQL从另一个表插入一个表

时间:2012-12-18 02:28:06

标签: php mysql sql insert

我在其他论坛上尝试过一堆灵魂,但总是会遇到错误。 这是使用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不是相同的顺序,并且该表还有更多字段。 谢谢, 编

2 个答案:

答案 0 :(得分:3)

DESC是MySQL保留关键字。您应该使用backtick转义,例如

INSERT INTO tableName(......, `desc`, .....)
SELECT ...

答案 1 :(得分:0)

1。请参阅 desc ,desc是一个保留字并作为语句重新加入,您必须向其添加反引号。

2。您必须在两个查询(INSERT INTOSELECT)之间添加分隔符

3。您的VALUESINSERT 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));
}