如何在codeigniter中做到这一点?
$this->db->query('UPDATE "table1" SET tech_voc=(select tech_voc from table1 where "tableID"='table1' AND psced_id="62") WHERE "tableID"="table1-A" AND major_id=1;');
我也做了
select tech_voc from table1 where "tableID"="table1-A"; //w qoutes
select tech_voc from table1 where "tableID"=table1-A; //w/o quotes
但仍然有错误。它说
错误:运算符不存在:字符变化。是的,我知道
但是当我尝试使用postgreSQL时
select tech_voc from table1 where "tableID"='table1-A'; // is correct
编辑------- @ Nouphal.M
这是ERROR消息:
错误:“" LINE 1: UPDATE
table1”或附近的语法错误SET tech_voc =(^
UPDATE table1
SET tech_voc =(SELECT tech_voc FROM table1 WHERE tableID
='table1'AND psced_id = 62)WHERE tableID
='table1-A'AND_id = 1)< / p>
编辑------- @tomexsans TESTING
我尝试了你说的话,它给出了服务器错误。
这是我尝试测试的代码。
$sql ="SELECT tech_voc FROM table1 WHERE `tableID`= ? AND `psced_id` = ?";
$this->db->query($sql,array['table1','62']);
答案 0 :(得分:0)
它在SQL中是错误的: 从table1中选择tech_voc,其中“tableID”='table1-A';
请尝试:
select tech_voc from table1 where tableID='table1-A';
您的最终查询如下:
$this->db->query("UPDATE table1 SET tech_voc=(select tech_voc from table1 where
tableID='table1' AND psced_id='62') WHERE tableID='table1-A' AND major_id=1;");
答案 1 :(得分:0)
我所做的是在数据库中将tableID更改为table_id。 PostregreSQL区分大小写,在Codeigniter中很难使用它。
所以这是我的最终代码:
$this->db->query("UPDATE table1 SET tech_voc=(select tech_voc from table1 where table_id='table1' AND psced_id='62')
WHERE table_id='table1-A' AND major_id=1;");
感谢所有分享他们想法的人。