2012-12-18 129 views
1

我已经尝试了一堆在这里的其他论坛soultions但总是得到错误。 这是当前的PHP代码使用HostGator的和PHP 5.2PHP MYSQL插入从另一个表

$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,事件)SELECT jvs.datecreated,jvs.fullname, jvs.email,jvs。'在第1行

我检查了两个表中的每个字段,拼写是正确的,并且fileds在那里。 这些文件在事件表中的排列顺序不同,并且该表有更多的字段。 谢谢, Ed

+0

可能重复的[MySQL:“您的SQL语法错误... ne ar'desc)VALUES('Idea','Description')'“](http://stackoverflow.com/questions/5357903/mysql-you-have-an-error-in-your-sql-syntax-near- desc-values-idea-des) –

回答

3

DESC是一个MySQL保留关键字。你应该backtick逃脱,如

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

对我自己来说_JW是JW,有我以前从未见过的46K?_但是你是Kuya John/John Woo。 :) –

+0

@MichaelBerkowski这是习惯改变我的名字,并通过每30天。我不知道为什么。也许我生病了。哈哈! –

+1

谢谢。这工作完美。很高兴我在这里问过,否则我会花更多的时间用这个。 –

0

看到递减,递减是保留字,readed的声明,你必须添加反引号吧。

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

哪里是你的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)); 
} 
+1

这是从一个表插入另一个表,因此不使用值。看起来你对所有事情都很反感。我想这是安全的一个好主意。 只是把desc解决一切。 谢谢。 –

+0

我试图将你的标记标记为已接受,但没有取消选中其他答案也不会。他首先回答,所以我接受了他。 –

+0

对不起...,我不知道:) –

相关问题