2009-06-23 4 views
0

Kurz gesagt, ich nehme an, dass die korrekte Methode, dies zu tun, ein updateAll mit den Bedingungen sein würde, die die des echten Schlüssels sind. Das Problem liegt darin, dass updateAll nicht standardmäßig die neuen Werte für die Datenbankeinfügung vorbereitet. Ich habe Code gesehen, der zeigt, wie man die Entwurzelung richtig macht, und würde dies lieber verwenden, anstatt eine Suche durchzuführen, um zuerst den Primärschlüssel pro Datensatz zu finden. Bei meiner Suche habe ich es noch nicht gefunden.Wie bearbeiten Sie Datenbankeinträge in CakePHP mit einem echten (zusammengesetzten) Schlüssel?

+0

Entschuldigung, ich weiß nicht genau, was Sie fragen. Vielleicht könnten Sie etwas Code und das spezifische Problem, das Sie haben, veröffentlichen? – inkedmn

+0

Einfach - wie mysql_real_escape_string in der CakePHP-Weise auf die Daten bei der Durchführung einer updateAll tun. Der Rest war nur Flaum zu erklären, warum die updateAll, und bieten, dass eine Alternative geliefert werden könnte, die meine Bedürfnisse ebenso erfüllen würde. – Iiridayn

Antwort

0
$db =& ConnectionManager::getDataSource($this->useDbConfig); 
foreach($fields as $key => $field) { 
    $fields[$key] = $db->value($field); 
} 
return $db->update($this, $fields, null, $conditions); 

Nie fand den Code obwohl. Es beinhaltet auch Speichern in 2 for-Schleifen, die weniger als ideal ist - man durchläuft die Form Submits und ruft diesen Code (anstelle von updateAll oder speichern), der andere legt die Kuchen Magie Filterung auf jedes Feld, um an die Datenbank zu übergeben.

2

CakePHP unterstützt keine zusammengesetzten Primärschlüssel.

Verwandte Themen