1

我在其他论坛上尝试了一堆灵魂,但总是出错。这是使用 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 行

我检查了两个表中的每个字段,拼写正确,并且文件在那里。事件表中的字段顺序不同,并且该表具有更多字段。谢谢,埃德

4

2 回答 2

3

DESC is a MySQL Reserved keyword. You should escape with backtick, eg

INSERT INTO tableName(......, `desc`, .....)
SELECT ...
于 2012-12-18T02:29:18.533 回答
0

1.desc, desc 是保留字,读作语句,必须加反引号。

2.INSERT INTO您必须在两个查询(和SELECT)之间添加分隔符

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));
}
于 2012-12-18T03:10:36.493 回答