我下載的是最新的tp3.2.3,我在執行語句的時候遇到問題
就是where或add,update的時候,
參數錯誤都不會報錯,而是直接過濾掉,我想問下,是我配置的問題嗎
問題:比方說user表 字段 username password,我在add的時候,把username寫成了usernames,結果語句成功了,不過只插入了password
查詢user表,我where條件裡面,故意把array('username'=>'aaa')寫成array('usernames'=>'aaa')
結果sql直接過濾成了空條件,也就是變成了select * from user ;
debug有開,表示錯誤會報錯,可是欄位錯誤不報錯!印出最後一條sql語句的時候,顯示的那些錯誤的欄位或條件,全部都被過濾掉了。
我下載的是最新的tp3.2.3,我在執行語句的時候遇到問題
就是where或add,update的時候,
參數錯誤都不會報錯,而是直接過濾掉,我想問下,是我配置的問題嗎
問題:比方說user表 字段 username password,我在add的時候,把username寫成了usernames,結果語句成功了,不過只插入了password
查詢user表,我where條件裡面,故意把array('username'=>'aaa')寫成array('usernames'=>'aaa')
結果sql直接過濾成了空條件,也就是變成了select * from user ;
debug有開,表示錯誤會報錯,可是欄位錯誤不報錯!印出最後一條sql語句的時候,顯示的那些錯誤的欄位或條件,全部都被過濾掉了。
在模型檔 印出sql:echo $this->getLastSql(),看看執行語句。
debug模式有沒有開?
這是thinkphp的過濾效果,add()會把不符合要求的欄位過濾掉。你這麼問說明你沒有看仔細文檔。
thinkphp本來就是可以過濾掉你錯誤的欄位。他只把正確的字段寫進去。不報錯誤的。他會當成你沒有傳這個字段處理