使用Zend Framework清理INSERT SELECT sql

时间:2014-01-25 07:45:47

标签: php mysql zend-framework

如何使用Zend Framework清理这个sql,以便我可以阻止sql注入攻击?

"INSERT INTO table(A, B, C)
 SELECT MAX(A)+1, '".$params['B']."', '".$params['C']."' FROM table
 WHERE B='".$params['B']."' AND C='".$params['C']."'"

$ params ['B']和$ params ['C']是用户输入。

1 个答案:

答案 0 :(得分:1)

使用QuoteInto方法对其进行清理。

http://framework.zend.com/manual/1.12/en/zend.db.adapter.html#zend.db.adapter.quoting.quote-into

要清理多个参数,

$stmt = $this->_db->prepare( 'SELECT * FROM ' . $this->_name . ' WHERE (a = ? AND b = ?) OR (c != ?)');
$stmt->execute(array($a, $b, $c));

http://blog.motane.lu/2009/05/21/zend_db-quoteinto-with-multiple-arguments/