2017-03-22 7 views
0

イム:\Zend\Db\Adapter\AdapterZend 2:Zend Db Adapterを使用して複数のSQLクエリを実行するにはどうすればよいですか?このクエリを実行する

$query = " 
    Select * From table1 Where id = 1; 
    Select * From table2 Where name = 'test'; 
"; 

$stmt = $this->dbAdapter->query($query); 
$rawResult = $stmt->execute(); 

がどのように私は2番目の結果にアクセスすることができますか? $rawResult->next()は、最初のクエリの値のみを返します。

答えて

0

2つの異なるクエリを使用します。

/* 
* First Query 
*/ 
$query = " 
    Select * From table1 Where id = 1 
"; 
$stmt = $this->dbAdapter->query($query); 
$rawResult = $stmt->execute(); 

/* 
* Second Query 
*/ 
$query = " 
    Select * From table2 Where name = 'test' 
"; 
$stmt = $this->dbAdapter->query($query); 
$rawResult = $stmt->execute(); 

このように、2つのクエリがこのように送信された場合と同じように動作するとは思いません。

コードの重複を避けるために、重複したコードをメソッドにラップすることができます。

$rawResult1 = $this->getResults("Select * From table1 Where id = 1"); 
$rawResult2 = $this->getResults("Select * From table2 Where name = 'test'"); 

function getResults(string $query) 
{ 
    $stmt = $this->dbAdapter->query($query); 
    return $stmt->execute(); 
} 
+0

ありがとう。ここで私を助けてもらえますか(:http://stackoverflow.com/questions/42859322/zend-2-sqlsrv-prepareparams-not-setted/42884181#42884181 – stefen

関連する問題