phpbar.de logo

Mailinglisten-Archive

[php] Mehrere Mysql-Queries mit php ?

[php] Mehrere Mysql-Queries mit php ?

Enrico Weigelt php_(at)_phpcenter.de
Wed, 15 May 2002 12:08:51 +0200


On Wed, May 15, 2002 at 09:48:25AM +0200, Clemens Zvacek wrote:

moin,

<snip>

> Bislang nahm ich einen Datensatz aus der Datei, zerlegte ihn mittels 
> Regexp und anderen Spaessen, 
> schaute anhand der Keywerte in die Db, ob da oder nicht und machte 
> demzufolge ein INSERT oder UPDATE.
lass sowas doch die datenbank machen. 

unique index ueber deine key attributes drueber legen, dann kannst du
keine doppeleintraege produzieren. 

dann einfach nur INSERT und nen UPDATE hinterher. 

> Also, dachte ich mir, hauste einfach viele Anweisungen hintereinander ans MYSQL. Das geht leider mit 
> PHP nicht, die Funktion mysql_query nimmt immer nur eine Anweisung an. 
> Daraufhin die Idee, dynamisch am Ende des Scripts eine Datei mit den SQL-Anweisungen zu erstellen 
> und diese mittels exec("mysql db < datei.sql"); einzulesen. Klappt so lala, nicht wirklich gut. 
> Notwendige Zeilenumbrueche zerhaut das Mysql total, es werden hoechstens 20 Eintraege ordentlich 
> eingelesen, dann meldet mysql das \\ kein Befehl sei (\\ kommt in Feldern vor, aber auch nur IN 
> Feldern)
musst du entsprechend escapen ...



> 
> Das ist also nicht die Loesung. 
> 
> Deswegen die Fragen:
> 
> Kann man MYSQL mit PHP zu einer persistenten Verbindung ueberreden, so dass die ekeligen 
> Neuconnects entfallen ? Kann man evt doch mehr als eine Query auf einen Rutsch absenden ?
> 
> Das ganze ist uebrigens ziemlich heikel, denn wenn die Daten erst am Ende des Scripts geschrieben 
> werden oder gar noch spaeter, und evt durch einen anderen Mitarbeiter die gleiche Datei ebenfalls 
> abgearbeitet wird, dann sind die Eintraege 2x drin. Und das ist mein Horror, darf nicht.
gegen doppeleintraege gibts unique indices. 

CREATE UNIQUE INDEX indexname ON tablename ( fields ... );

~-n

--
 Enrico Weigelt    ==   metux ITS 
 Webhosting ab 5 EUR/Monat. Server-Housing ab 50 EUR/Monat.
 www:     http://www.metux.de/        phone:     +49 36207 519931
 email:   contact_(at)_metux.de            cellphone: +49 174 7066481


php::bar PHP Wiki   -   Listenarchive