2012-12-18 160 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

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

相關問題