2

次のSQLクエリがあり、zend2に書き込む必要があります。Zend2の削除クエリで制限と順序を使用する方法

DELETE FROM test_table WHERE user_id = 2 ORDER BY id ASC LIMIT 10 

私はこれを試してみました:

$sql = new Sql($this->dbAdapter); 
$delete = $sql->delete(); 
$delete->from('test_table'); 
$delete->where(array('user_id' => 4)); 

$delete->order('Id ASC'); 
$delete->limit(10); 

$stmt = $sql->prepareStatementForSqlObject($delete); 
$results = $stmt->execute(); 

が、私はこれらの2行を追加したときに、それは動作しません。

$delete->order('Id ASC'); 
$delete->limit(10); 

答えて

0

を使用すると、SQLアダプタを使用していると思います。しかし、SQL ZF delete()implementationを見ると、order()またはlimit()メソッドがないことがわかります。だから、あなたが次のことを試すことができます...

+1

OK、しかし、どのように私はZF2にこのクエリを実行することができますか? – Andreea

0

それらを呼び出すことはできません。

$sql = new Sql($this->dbAdapter); 
$delete = $sql->delete(); 
$delete->from('test_table'); 
$delete->where(array('user_id' => 4)); 
// get sql string 
$deleteQuery = $sql->getSqlStringForSqlObject($delete); 
// append the order by and limit 
$deleteQuery .= " ORDER BY id ASC LIMIT 10"; 
// execute query 
$result = $this->dbAdapter->query($deleteQuery, 'execute'); 

OR

$deleteQuery = "DELETE FROM test_table WHERE user_id = 2 ORDER BY id ASC LIMIT 10"; 
$result = $this->dbAdapter->query($deleteQuery, 'execute'); 
関連する問題