关于zendframework中的Zend_Db_Expr(不自动加引号)
在zendframework中使用Db類時,框架會自動給sql語句添加引號以防止數據庫攻擊 ,這就導致了一個問題,用戶無法使用zend db類使用mysql的內置函數(方法,存儲過程等)。好在zend框架提供了一個類Zend_Db_Expr,此類的構造函數會告訴框架不要對它所轉化的類型進行添加引號的操作。
?? 如:
??$select=$db->select();
?? $select->from("testtable","*");
?? $select->where($db->quotInto("date>=?",new Zend_Db_Expr("UNIX_TIMESTAMP()"));
?? $db->fetchAll($select);
在上面的例子中,框架不會對UNIX_TIMESTAMP()添加引號,從而讓用戶能正常使用此函數
例子:
$data = array(
??????????????????? 'id' => $this->getId(),
??????????????????? 'status' => self::STATUS_CONFIRMED,
??????????????????? 'confirmTime' => new Zend_Db_Expr('NOW()')
??????????? );
??????????? $this->save($data);
轉載于:https://www.cnblogs.com/eterwei/p/3761015.html
總結
以上是生活随笔為你收集整理的关于zendframework中的Zend_Db_Expr(不自动加引号)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纪念自己的第四个App:秘密Secret
- 下一篇: GOBang对战