我該如何在codeigniter中做到這一點?查詢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 這是錯誤消息:
錯誤:語法錯誤達到或近「" LINE 1: UPDATE
table1` SET tech_voc =(^
UPDATE SET table1
= tech_voc(SELECT tech_voc FROM表1 WHERE tableID
= '表1' AND psced_id = 62)WHERE tableID
= '表1-A' 和MA jor_id = 1)
編輯------- @tomexsans測試
我想你說的,它給服務器錯誤。
這是我嘗試進行測試的代碼。
$sql ="SELECT tech_voc FROM table1 WHERE `tableID`= ? AND `psced_id` = ?";
$this->db->query($sql,array['table1','62']);
你不應該對列名使用單引號或雙引號,而應該使用反引號,注意我如何使用反引號而不是單引號。 'WHERE \'tableID \'='table1-A'' – Prix
@Prix我明白了。但這裏的問題不是列而是字符變化的列的數據。 – Kino
您是否嘗試過使用查詢綁定方法,因爲它會自動轉義字符。 'WHERE tableID =?' – tomexsans