首頁  >  文章  >  後端開發  >  thinkphp問題

thinkphp問題

WBOY
WBOY原創
2016-09-06 08:57:08958瀏覽

我下載的是最新的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本來就是可以過濾掉你錯誤的欄位。他只把正確的字段寫進去。不報錯誤的。他會當成你沒有傳這個字段處理

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn