关于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);

关于zendframework中的Zend_Db_Expr(不自动加引号),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。