我正在开发一个使用zend框架的web应用程序。对于select语句,我使用以下方法。与Zend的mysql_real_escape_string
例:
public function getData($name)
{
$sql = "SELECT * from customer where Customer_Name = '$name'";
return $this->objDB->getAdapter()->fetchAll ($sql);
}
这工作得很好。但是,如果我将客户名称发送为:colvin's place
, 查询失败。我知道这是因为单引号。
早些时候我用addslashes PHP函数。但我看到这不是一个好办法。这次我使用了PHP功能mysql_real_escape_string
。
问题是它说下面的警告。
Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'ODBC'@'localhost' (using password: NO)
这是因为mysql_real_escape_string
功能需要通过mysql_connect
打开数据库的连接。我的问题是我如何使用* Zend_DB *类。我需要始终使用自定义选择查询。欣赏你的其他建议,如果可用。
谢谢
没哟尝试使用[Zend_DB_Statement](http://framework.zend.com/manual/ en/zend.db.statement.html) – 2011-12-31 02:23:46
感谢Shiplu。我会查的。 – 2011-12-31 02:24:44
我使用addslashes()和整数Intval()。但使用addslashes是一种不好的做法。 – devOp 2012-07-31 14:03:24