通常、これは私にとってはうまくいきます:
$db = Zend_Db_Table::getDefaultAdapter();
$where = $db->quoteInto('id = ?', $id);
$db->delete('tablename', $where);
2つのIDを一致させる必要があります。だから私はそれをどのように構成するか本当に知りません。
WHERE first_id = 'id1' AND second_id = 'id2'
それでは、Zend Frameworkでこれをどのように行うのですか?
Jason Wの答えをさらに詳しく説明します。
3番目のセクションの内容がよくわからない
つまり、これを行うことができます:
$db->delete('tablename', array(
'first_id = ?' => $first_id,
'second_id = ?' => $second_id
));
そして、アダプターはあなたのためにすべてを引用します。
ドキュメントが非常に明確であるように私は感じていません。
Delete()の zend manual から:
2番目の引数を省略すると、データベーステーブルのすべての行が削除されます。
2番目の引数として文字列の配列を指定すると、これらの文字列はAND演算子で区切られた式の項として結合されます。
2番目の引数として配列の配列を指定すると、値は自動的にキーに引用されます。その後、これらはAND演算子で区切られた用語として結合されます。
3番目のセクションが何を言っているかは正確にはわかりませんが、2番目のセクションでは、次のことを実行できます。
$where = array();
$where[] = $db->quoteInto('first_id = ?', $first_id);
$where[] = $db->quoteInto('second_id = ?', $second_id);
$db->delete('tablename', $where);
Zend_Db_Table_Abstractクラスを拡張するモデルを使用している場合は、別の構造を使用する必要があります。
class Yourmodel extends Zend_Db_Table_Abstract {
protected $_name = 'tablename';
protected $_primary = 'primarykey';
public function remove($first_id, $second_id) {
$where = array();
$where[] = $this->getAdapter()->quoteInto('first_id = ?', $first_id);
$where[] = $this->getAdapter()->quoteInto('second_id = ?', $second_id);
$this->delete($where);
}
}