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