簡體   English   中英

CodeIgniter-MySQL錯誤1064(更新table1內部聯接table2(…))

[英]CodeIgniter - MySQL Error 1064 (Update table1 inner join table2(…))

現在是早上6點,我仍在努力使用CodeIgniter PHP framewok執行查詢。 希望你們能幫助我

碼:

$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>";
};

錯誤:

發生數據庫錯誤

錯誤號:1064

您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以找到在'UPDATE STUDY_LIST_AUX INNER JOIN study_report ON'STUDY_LIST_AUX.study_iu'處附近使用的正確語法

我已經嘗試了所有方法,包括反引號,正常刻度線,引號,但錯誤仍然存​​在。 在phpmyadmin上,查詢成功運行。

任何建議或想法將不勝感激

在此先感謝大家:)

嘗試這個。 使用雙引號,所以您不必擔心里面的引號

$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";

您在查詢ex中有一些語法問題:

 `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
";

您可以使用以下Active Record代碼來更新query代碼

$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);

這會幫你...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM