nop*_*aws 17 mysql zend-framework2
有没有办法在Zend Framework 2中执行SQL String作为查询?
我有一个这样的字符串:
$sql = "SELECT * FROM testTable WHERE myColumn = 5"
Run Code Online (Sandbox Code Playgroud)
现在我想直接执行这个字符串.
Wet*_*eef 54
只需将sql字符串传递给数据库适配器,如下所示:
$resultSet = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
Run Code Online (Sandbox Code Playgroud)
如果你想传递参数:
$sql = "SELECT * FROM testTable WHERE myColumn = ?";
$resultSet = $adapter->query($sql, array(5));
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,查询方法并不总是返回结果集.当它的一个结果产生查询(SELECT),它返回一个\Zend\Db\ResultSet\ResultSet否则(INSERT,UPDATE,DELETE,...),它会返回一个\Zend\Db\Adapter\Driver\ResultInterface.
当您将第二个参数留空时,您将获得一个\Zend\Db\Adapter\Driver\StatementInterface可以执行的参数.
use Zend\Db\Sql\Sql;
use Zend\Db\Adapter\Adapter;
$dbAdapterConfig = array(
'driver' => 'Mysqli',
'database' => 'dbname',
'username' => 'dbusername',
'password' => 'dbuserpassword'
);
$dbAdapter = new Adapter($dbAdapterConfig);
$sql = new Sql($dbAdapter);
$select = $sql->select();
$select->from('testTable');
$select->where(array('myColumn' => 5));
$statement = $sql->prepareStatementForSqlObject($select);
$result = $statement->execute();
Run Code Online (Sandbox Code Playgroud)
S. docu:Zend\Db → Zend\Db\Sql
| 归档时间: |
|
| 查看次数: |
31745 次 |
| 最近记录: |