Zend_Db - Aufbau einer Abfrage Löschen

Ich bin versuchen, neu zu erstellen Sie den folgenden in das Zend Framework und bin mir nicht sicher, wie es zu tun:

DELETE FROM mytablename WHERE date( `time_cre` ) < curdate( ) - INTERVAL 4 DAY 

Ich dachte so etwas wie:

$table = $this->getTable();
$db = Zend_Registry::get('dbAdapter');
$db->delete($table, array(
    'date(`time_cre`) < curdate() - interval 4'
));

Tut, richtig?

Was ist der beste Weg, um mit etwas wie diesem?


EDIT: Ack! Sorry, ich war die Anpassung dieses aus ein WÄHLEN Sie ich mit zu testen und nicht ändern Sie die syntax richtig, wenn ich klebte es in. Ich habe bearbeitet das Beispiel, um es zu beheben.

  • es ist nicht klar, was Sie brauchen, zu löschen. Die syntax der delete ist DELETE FROM [table_name]
  • was dbms benutzt du (ich würde davon ausgehen, mysql?) Ihre syntax ist nicht-standard und sehr sonderbar. Wenn Sie nur wollen, um das entfernen von Daten aus einer Spalte, die Sie verwenden sollten, AKTUALISIEREN und setzen Sie die Spalte, NULL,",0 usw. LÖSCHEN ist speziell für das entfernen von gesamten Zeilen, es sei denn, Ihr dbms dies unterstützt etwas, das ich bin nicht vertraut mit.
  • Von wo hast du das syntax: DELETE [something] FROM table [where] ? Weder MySQL, PostgreSQL oder Oracle verwendet. Nach DELETE Sie brauchen nichts, weil Sie beim löschen der ganzen Zeile, keine Spalte Wert.
  • DELETE löscht die komplette Zeile , n
  • Ich konnte nicht Bearbeiten des Beispiel richtig. Ich habe aktualisiert mein Beispiel.. tut mir Leid, dass.
  • Dieser code wird im controller, custom class geerbt von Zend_Db_Table_Abstract Klasse, oder benutzerdefinierte Klasse geerbt von Zend_Db_Table_Row(_Abstract) ?
  • in controller und erbt von Zend_Db_Table_Abstract. Und bieten mehr Erklärung, was ich versuche zu tun, meine grundlegende Ziel ist zum löschen Alter Einträge aus einer sehr großen Datenbank alle 4 Tage. Ich kenne die sql-Anweisung funktioniert (die bearbeitete version, die ich gerade aktualisiert), aber ich bin nicht sicher, wie es in ZF.

InformationsquelleAutor Lothar | 2011-03-03
Schreibe einen Kommentar