2015-05-01 39 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