2017-06-21 8 views
-1

Ich arbeite an einer Symfony-Anwendung, und ich muss mehrere Raws auf einmal einfügen, Doctrine ORM ist keine gute Option, da für jeden Raw es eine Verbindung zum Ausführen der Abfrage geöffnet wird Um dies zu vermeiden und eine Verbindung zu haben, die alle Raws einfügt, habe ich vorbereitete Aussage der Doktrin Dbal verwendet und es funktioniert gut, außer ich brauche die IDs der eingefügten Raws, scheint es die einzige verfügbare Funktion ist Lastinsertedid, die nur die letzte ID zurückgibt nicht alle zuletzt eingefügten, wie kann ich das erreichen? jede Hilfe wäre willkommen!IDs von eingefügten Raws über Doktrin dbal

+0

Bit off topic, aber die Vorstellung, dass Lehre ORM für jede Abfrage eine neue Verbindung öffnet nicht korrekt ist. Können Sie Ihre vorbereitete SQL-Anweisung anzeigen? – Cerad

Antwort

2

Das ist eigentlich überhaupt nichts mit Doktrin zu tun. Wenn Sie alle eingefügten IDs haben wollen, muss es in MySQL möglich sein. „Es ist unwahrscheinlich, dass, wenn Lehre nicht Charge haben einfügen wird es zurückkehr Liste der IDs nach Masseneinfügemodus unterstützen :)“

überprüfen Antworten in Bezug auf MYSQL:

How can I Insert many rows into a MySQL table and return the new IDs?

MySQL LAST_INSERT_ID() used with multiple records INSERT statement

Aber es ist möglich, in postgresql (da Sie nicht, dass Sie DB nicht erwähnt):

Retrieving serial id from batch inserted rows in postgresql

1

Sie können tatsächlich IDs generieren, bevor Sie Inhalte in die Datenbank einfügen. Zum Beispiel mit zufälligen UUIDs. Diese Bibliothek könnte von Nutzen sein: https://github.com/ramsey/uuid

use Ramsey\Uuid\Uuid; 

$uuid4 = Uuid::uuid4(); 
echo $uuid4->toString() 
Verwandte Themen