/PHP
ichen
- datenbank
0 Thorsten F.0 Tom0 Fridtjof Bösche0 Maddin0 Fridtjof Bösche0 Tom0 Maddin
3 Christian Kruse
Moin!
kann ich in einem mysql_query(); mehrere anweisungen an eine mysqldatenbank versenden?
zum beistpiel 3 inserts.
tschüssi
ichen
3 inserts für die ein und dieselbe Tabelle oder für verschiedene Tabellen?
Hello,
kann ich in einem mysql_query(); mehrere anweisungen an eine mysqldatenbank versenden?
Nein. Mehrere Statements in einem Funktionsaufruf werden (noch) nicht unterstützt.
zum beistpiel 3 inserts.
Ein Multiinsert kann in einem Statement angewiesen werden, wenn er sich auf eine Tabelle beschränkt. Das meinte Thorsten wohl auch...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
kann ich in einem mysql_query(); mehrere anweisungen an eine mysqldatenbank versenden?
Das ist problemlos möglich, indem die einzelnen Anweisungen durch Semikolon getrennt werden
Beispiel:
INSERT INTO ErsteTablle ( Spalte1 , Spalte2 , u.s.w. )
VALUES ('Wert1' , 'Wert2' , u.s.w. ),
('Wert1' , 'Wert2' , u.s.w. );
INSERT INTO AndereTabelle ( Spalte1 , Spalte2 , u.s.w. )
VALUES ('Wert1' , 'Wert2' , u.s.w. );
So etwa könntest du in "ErsteTablle" mehrere Einträge, und in "AndereTabelle" einen Eintrag gleichzeitig machen.
Hallo
Das ist problemlos möglich, indem die einzelnen Anweisungen durch Semikolon getrennt werden
Nein, das ist in PHP (aus gutem Grund) nicht möglich.
Gruß,
Maddin
Nein, das ist in PHP (aus gutem Grund) nicht möglich.
Ich hab es grade ausprobiert und es funktioniert.
MFJ
你好 Fridtjof,
Nein, das ist in PHP (aus gutem Grund) nicht möglich.
Ich hab es grade ausprobiert und es funktioniert.
Du hast ausprobiert mit mysql_query() mehrere, durch Semikola getrennte
Queries abzufeuern und es hat funktioniert? Welche Version von MySQL
benutzt du, und welche Version von PHP?
再见,
CK
Hallo Christian!
Nein, das ist in PHP (aus gutem Grund) nicht möglich.
Ich hab es grade ausprobiert und es funktioniert.
Du hast ausprobiert mit mysql_query() mehrere, durch Semikola getrennte
Queries abzufeuern und es hat funktioniert?
Das geht nur mit der mysqli-Extension, und dort aus Sicherheitsgründen auch nur mit mysqli_multi_query().
Welche Version von MySQL
benutzt du, und welche Version von PHP?
Unterstützt wird das seit 4.1, in diesem Fall tippe ich aber mal einfach auf phpMyAdmin ;-)
Grüße
Andreas
Hello,
Unterstützt wird das seit 4.1, in diesem Fall tippe ich aber mal einfach auf phpMyAdmin ;-)
Da werden sie ja einzeln abgesetzt, was z.B. auch zu Schwierigkeiten bei gebundenen Statements und Abfrage des LastInsert-Wertes führen kann.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
你好 Andreas,
Das geht nur mit der mysqli-Extension, und dort aus Sicherheitsgründen
auch nur mit mysqli_multi_query().
Nein, das geht auch so mit mysql_query(), man muss nur den richtigen Flag
setzen.
再见,
CK
Hi Christian!
Das geht nur mit der mysqli-Extension, und dort aus Sicherheitsgründen
auch nur mit mysqli_multi_query().Nein, das geht auch so mit mysql_query(), man muss nur den richtigen Flag
setzen.
Meinst Du die PHP-Funktion - also mysqli_query()? Keine Ahnung, ich habe bisher selber noch nicht mit sowas gearbeitet. Ich habe nur unter http://www.php.net/manual/en/function.mysqli-real-connect.php folgendes gelesen:
Note: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.
Finde ich auch sehr vernünftig - ehrlich gesagt. Vermutlich ist das eine bewußte Abweichung von der C-API.
Grüße
Andreas
你好 Andreas,
Meinst Du die PHP-Funktion - also mysqli_query()?
Aeh, nein, ich meinte natuerlich die mysql_connect(), sorry. Der kann
man ja auch Flags mitgeben, auch wenn die nicht in den Namespace von PHP
importiert werden.
Note: For security reasons the MULTI_STATEMENT flag is not supported in
PHP. If you want to execute multiple queries use the mysqli_multi_query()
function.
Das ist Quatsch. Es wird nur das Symbol nicht in den Namespace exportiert,
mehr nicht.
再见,
CK
Hello,
Hallo
Das ist problemlos möglich, indem die einzelnen Anweisungen durch Semikolon getrennt werden
Nein, das ist in PHP (aus gutem Grund) nicht möglich.
Liegt das an PHP?
Ich kenne keine Möglichkeit, mit der es bei __MySQL__ möglich wäre.
Andere DBMS können das auch mit PHP.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi
Liegt das an PHP?
Soweit ich weiß ja.
Ansonsten wäre es zu einfach, fremde Datenbanken zu manipulieren.
Gruß,
Maddin
你好 ichen,
kann ich in einem mysql_query(); mehrere anweisungen an eine
mysqldatenbank versenden?
Wenn MySQL 4.1 benutzt wird: prinzipiell ja, du musst mysql_connect() nur
den richtigen Flag mitgeben. Alles < MySQL 4.1: nein, geht nicht.
zum beistpiel 3 inserts.
Das geht mit mehrfachen Werte-Listen. Aus
http://dev.mysql.com/doc/mysql/en/insert-speed.html:
You can use the following methods to speed up inserts:
* If you are inserting many rows from the same client at the same time, use INSERT statements with multiple VALUES lists to insert several rows at a time. This is much faster (many times faster in some cases) than using separate single-row INSERT statements. If you are adding data to a non-empty table, you may tune the bulk_insert_buffer_size variable to make it even faster. See Section 5.2.3, “Server System Variables”.
再见,
CK