php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.01.2010, 11:55  
Neuer Benutzer
 
Registriert seit: 19.01.2010
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
combination befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mehrere Queries ausführen

Moin php.de,

ich hab folgendes Problem:
In einem Query mache ich zwei INSERT INTO, getrennt durch Semikolon.

Führe ich diesen "Doppel-Query" aus, erhalte ich einen Fehler.
Geb ich die query-var per echo aus, und kopiere diese in mysql, funktioniert er.

DB Struktur:
Code:
CREATE TABLE IF NOT EXISTS `bestellung` (
  `bestnr` int(16) NOT NULL AUTO_INCREMENT,
  `b_tag` int(2) NOT NULL,
  `b_monat` int(2) NOT NULL,
  `b_jahr` int(2) NOT NULL,
  `kundennr` int(16) NOT NULL,
  PRIMARY KEY (`bestnr`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `einkauf` (
  `bestnr` int(16) NOT NULL,
  `artnr` varchar(255) NOT NULL,
  `menge` int(16) NOT NULL,
  KEY `bestnr` (`bestnr`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
PHP-Script:
PHP-Code:
$result mysql_query("SELECT * FROM Bestellungen");
// Das ist die alte Table, die wird auf 2 Tables aufgeteilt

while($row mysql_fetch_array($result)) {

$tablestatus mysql_query("SHOW TABLE STATUS LIKE 'bestellung'");
$status mysql_fetch_array($tablestatus);
$auto $status['Auto_increment'];
// da beide tables den selben bestnr-wert benötigen

    
$sql "INSERT INTO
        bestellung (bestnr, b_tag, b_monat, b_jahr, kundennr) 
        VALUES
        ('"
.$auto."', '".date("d"strtotime($row['Datum']))."', '".date("m"strtotime($row['Datum']))."', '".date("Y"strtotime($row['Datum']))."', '".$row['Kundennr'] ."');
        
        INSERT INTO
        einkauf (bestnr, artnr, menge)
        VALUES
        ('"
.$auto."', '".$row['ArtNr']."', '".$row['Anzahl']."')";

    echo 
$sql "<br />";
    
//echo $sql1 . "<br />" . $sql2 . "<br />";

    
mysql_query($sql) or die(mysql_error());
    
//mysql_query($sql1) or die(mysql_error());
    //mysql_query($sql2) or die(mysql_error());

Zitat:
echo sagt
INSERT INTO bestellung (bestnr, b_tag, b_monat, b_jahr, kundennr) VALUES ('22', '31', '08', '2009', '4939'); INSERT INTO einkauf (bestnr, artnr, menge) VALUES ('22', '80020', '300')
und der Fehler meint
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO einkauf (bestnr, artnr, menge) VALUES ('22', '80020', '300'' at line 6


Wie gesagt, der Fehler kommt nicht, wenn ich beide Teile getrennt ausführe. Würde es aber der Vollständigkeit halber bevorzugen, das ganze in einem Query abzuwickeln.

Bin echt ratlos, Anführungszeichen usw. sollten alle passen


Vielleicht findet wer von euch den Fehler :S
combination ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.01.2010, 12:17  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 298
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Das funktioniert so nicht. Du musst die Querys getrennt ausführen. Macht phpMyAdmin zum Beispiel auch so. Dort kann man zwar die Querys mit Semikolon getrennt eingeben, aber intern wird das ganze dann getrennt ausgeführt.
Das ist mein Wissensstand
KarlEgon ist offline   Mit Zitat antworten
Alt 19.01.2010, 12:33  
Benutzer
 
Registriert seit: 06.12.2009
Beiträge: 43
PHP-Kenntnisse:
Anfänger
Optimist befindet sich auf einem aufstrebenden Ast
Standard

Ein mit PHP gesendeter Query - also der String selbst - darf nicht mit Semikolon abgeschlossen werden.

Daher schließe ich mich "meinem Vorredner" an.
Optimist ist offline   Mit Zitat antworten
Alt 19.01.2010, 12:40  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

Zitat:
Würde es aber der Vollständigkeit halber bevorzugen, das ganze in einem Query abzuwickeln.
Das bringt nix, wenn der 2. Query Fehlerhaft ist würde der erste trotzdem ausgeführt werden.

Nimm dafür am besten MySQLi, damit kann man mehrere Queries auf einmal abschicken und es unterstützt Transaktionen, d.h. innerhalb einer Transaktion wird alles oder, falls ein Fehler auftritt, garnix geschrieben.
draco88 ist offline   Mit Zitat antworten
Alt 19.01.2010, 12:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.233
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Pauschal ünterstützt MySQLi zwar Transaktionen. Dennoch kommt es auf die Storage-Engine an, ob dies unterstützt wird. Bitte also keinen Illusionen hingeben, sondern über die Features der Sotrage Engines informieren.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 19.01.2010, 14:37  
Neuer Benutzer
 
Registriert seit: 19.01.2010
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
combination befindet sich auf einem aufstrebenden Ast
Standard

hhm verstehe =/

Na gut, dann erstmal mit 2 Queries, werd mich aber mal ein bissl in MySQLi einlesen =)


Danke euch
combination ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
(sql) sh Datei ausführen awsed PHP Tipps 2009 12 07.06.2009 12:55
MySQLi - mehrere Queries AndreeThe2nd PHP Tipps 2009 1 13.05.2009 20:24
ORDER BY (2 Queries) DonPatricio PHP Tipps 2009 6 02.02.2009 01:31
MySQL-Befehle in PHP-Funktion ausführen bursch PHP Tipps 2008 2 06.10.2008 13:28
Mit PHP vb6.exe ausführen DaniGro PHP-Fortgeschrittene 1 26.04.2007 14:47
Php script über link ausführen!?? Funky_ PHP Tipps 2006 2 20.06.2006 11:32
Wieviele Queries verträgt ein Server? webstylist Datenbanken 2 08.06.2006 16:10
[Erledigt] Externes Programm per PHP auf Windows 2003 OpenSA ausführen PHP-Fortgeschrittene 1 07.03.2006 12:12
[Erledigt] Query ausführen: mit webapp?!? Datenbanken 18 21.01.2006 15:26
Sql Befehle mit Php ausführen PHP Tipps 2006 11 11.01.2006 12:48
mehrere querys ausführen? Calli PHP Tipps 2007 4 15.11.2005 16:18
wie viel queries pro seite zapate PHP Tipps 2005-2 10 22.07.2005 23:02
2 queries parallel ausführen Mutatos Datenbanken 1 19.11.2004 10:44
PHP-Skript auf fremdem Server ausführen PHP Tipps 2004 2 02.11.2004 08:23
Anzahl von Queries rausfinden PHP Tipps 2004 2 01.07.2004 17:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mehrere queries, http://www.php.de/datenbanken/63561-erledigt-mehrere-queries-ausfuehren.html, php mehrere queries ausführen, mehrere query, php mehrere querys, mehrere querys ausführen, php mehrer queries, php querys nach semikolon trennen, php sql insert ausführen, 2 querys ausführen, mehrere $query, mehrere querys auf einmal php, php mehrere sql query ausführen, mehrere querys in einem ausführen, sql datei ausführen php, mysql mehrere queries ausführen, mehrere queries ausführen mysql, mehrere inserts in einer query, query in php mehrere, mehrere queries in einer funktion

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum