RAW SQL Query with Zend Framework

前端 未结 4 1921
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-08 11:04

Is there a way to execute a SQL String as a query in Zend Framework?

I have a string like that:

$sql = \"SELECT * FROM testTable WHERE myColumn = 5\"         


        
相关标签:
4条回答
  • 2020-12-08 11:36

    You can use the same query in Zend format as

    $select = db->select()->from(array('t' => 'testTable'))
                         ->$where= $this->getAdapter()->quoteInto('myColumn = ?', $s);
    $stmt = $select->query();
    $result = $stmt->fetchAll();
    
    0 讨论(0)
  • 2020-12-08 11:46

    If you're creating a Zend_DB object at the start you can create a query using that. Have a look at this entry in the manual : https://framework.zend.com/manual/1.12/en/zend.db.statement.html

    $stmt = $db->query(
                'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?',
                array('goofy', 'FIXED')
            );
    

    Or

    $sql = 'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?';
    $stmt = new Zend_Db_Statement_Mysqli($db, $sql);
    
    0 讨论(0)
  • 2020-12-08 11:49

    Here is an example for ZF1:

    $db =Zend_Db_Table_Abstract::getDefaultAdapter();
    $sql =    "select * from user"
    $stmt = $db->query($sql);
    $users =  $stmt->fetchAll();
    
    0 讨论(0)
  • 2020-12-08 11:54

    If you are using tableGateway, you can run your raw SQL query using this statement,

    $this->tableGateway->getAdapter()->driver->getConnection()->execute($sql);
    

    where $sql pertains to your raw query. This can be useful for queries that do not have native ZF2 counterpart like TRUNCATE / INSERT SELECT statements.

    0 讨论(0)
提交回复
热议问题