我在Zend框架與數據庫適配器
$adapter = Zend_Db_Table::getDefaultAdapter();
插入數據,並執行INSERT語句是這樣的:
$q = "INSERT INTO questions (category_id, user_id, `text`, active)
VALUES($category_id, ".$user_id.", '".$question_text."', 1)";
$adapter->query($q);
但有時此查詢不起作用。這隻發生在$question_text
相當長(> 1000個字符)並且不依賴於內容而只依賴於長度的情況下。在phpmyadmin中執行相同的語句沒有問題。 (該數據庫字段是文本)
當我使用
$adapter->exec($q);
的查詢工作正常爲好。
現在我的問題:
是什麼導致了問題的查詢()語句?
是否有任何缺點使用exec()代替?
看起來像這是/是preg函數的錯誤,請參閱與您所描述的症狀相匹配的錯誤報告http://framework.zend.com/issues/browse/ZF-8399 – martynthewolf 2012-08-13 17:03:09
您是否正確地轉義了輸入數據?如果使用面向對象的接口進行插入,會發生問題嗎?你還使用什麼操作系統和ZF版本?您是否檢查查詢的結果,並且您是否收到任何錯誤消息或者只是沒有新的數據? – drew010 2012-08-13 18:06:01