在Zend框架中编写sql查询

问题描述:

我在zend框架模型中编写sql查询时遇到了问题。在Zend框架中编写sql查询

我想在zend框架模型中编写原生sql查询。

在此先感谢。

+2

请告诉我URS REQ。你试过什么? – Teja 2012-03-09 15:21:12

扩大布赖恩的答案:)

首先,你必须创建一个“数据库适配器”什么连接到你的数据库。每个支持的数据库引擎都具有特定的适配器类数据库引擎可以是MySQL中,PostgreSQL..etc 你可以找到所有在这里:http://framework.zend.com/manual/en/zend.db.adapter.html

例如,您可以创建一个MySQL特定的适配器是这样的:

$dbAdapter = new Zend_Db_Adapter_Pdo_Mysql(array(
    'host'  => 'localhost', 
    'username' => 'webuser', 
    'password' => 'xxx', 
    'dbname' => 'test' 
)); 

然后,如果你有一个原生SQL查询,如:

$sql = "SELECT * FROM users WHERE id > 23"; 

,那么你可以使用上面的$dbAdapter对象来运行这个本地查询,利用其query()功能:

$statement = $dbAdapter->query($sql); 

现在,$ statement变量将是一个Zend_Db_Statement对象。如果你想看到这个查询的结果,你可以使用fetch()功能,如:

while ($row = $statement->fetch()) { 
    echo $row['username']; 
} 

同时其易于使用,它不使用上面的查询()方法中最好的技术,因为 它没有帮助促进与数据库无关的查询。 要编写数据库无关查询,您可以使用Zend_Db_Select。但是,当然,有时不能避免使用本机查询。你可以在这里找到你怎么能写这些查询更多分贝引擎为例:
Zend_Db_Select order by random, compatible in mssql/mysql

基于这个例子中,你可以使用基于您的适配器的类型不同的查询..