2015-05-01 52 views
0

現在是上午6點,我仍然努力執行CodeIgniter PHP框架查詢。希望你們能幫助我CodeIgniter - MySQL錯誤1064(更新table1內連接表2(...))

代碼:

$query=' 
UPDATE `STUDY_LIST_AUX` 
INNER JOIN `study_report` 
ON `STUDY_LIST_AUX.study_iuid`=`study_report.study_iuid` 
SET `STUDY_LIST_AUX.report_date`=DATE_FORMAT(`study_report.report_date`,\'%Y-%m-%d %h:%i:%s\'), `STUDY_LIST_AUX.report_status` = `study_report.report_status` 
'; 

if ($this->db->query($query)) 
{ 
     echo "True!<br><br>"; 
} 
else 
{ 
     echo "False<br><br>"; 
}; 

錯誤:

A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE STUDY_LIST_AUX INNER JOIN study_report ON `STUDY_LIST_AUX.study_iu' at line 22

我用盡了一切,反引號,正常的蜱,引號,但錯誤依然存在。在phpmyadmin上,查詢成功運行。

任何建議或想法將非常感激

在此先感謝球員:)

+0

你試過沒有'ON'條件下反引號? –

+0

如果U表示這個 - >'ON' - 它沒有工作。無論如何,謝謝;) – DFX

+0

我的意思是'ON STUDY_LIST_AUX.study_iuid = study_report.study_iuid'。由於你的字段名稱和表名似乎沒問題,所以我猜沒有使用反引號,它只是降低了可讀性。 –

回答

0

可以使用下面這個活動記錄代碼

$data = array('s.report_date' => 'DATE_FORMAT(`study_report.report_date`,\'%Y-%m-%d %h:%i:%s\')','s.report_status' => 'sr.report_status'); 
$this->db->update('STUDY_LIST_AUX s JOIN study_report sr on s.study_iuid = sr.study_iuid',$data); 

這會幫助您更新query代碼...

+0

謝謝,你的答案並沒有解決我的問題,但它幫助我修復語法。但現在我遇到了另一個問題,我已經發布在這裏:http://stackoverflow.com/q/29997668/4853149 – DFX

0

嘗試。使用雙引號,這樣你就不必擔心裏面

$query="UPDATE STUDY_LIST_AUX 
INNER JOIN study_report 
ON STUDY_LIST_AUX.study_iuid = study_report.study_iuid 
SET STUDY_LIST_AUX.report_date = 
DATE_FORMAT(study_report.report_date,'%Y-%m-%d %h:%i:%s'), 
STUDY_LIST_AUX.report_status = study_report.report_status"; 
+0

謝謝 – DFX

+1

如果你使用codeigniter,爲什麼你不使用db-> update() – gecco

0

你必須在查詢前的一些語法問題報價:

`STUDY_LIST_AUX.study_iuid` 

如果您正在使用反引號,那麼它應該是爲

`STUDY_LIST_AUX`.`study_iuid` 

正確的查詢應該是

$query = " 
update `STUDY_LIST_AUX` sla 
join `study_report` sr on sr.study_iuid = sla.study_iuid 
set 
sla.report_date = date_format(sr.report_date,'%Y-%m-%d %h:%i:%s'), 
sla.report_status = sr.report_status 
"; 
+0

謝謝但它沒有爲我工作;) – DFX