phpbar.de logo

Mailinglisten-Archive

[php] mysql_insert_id() nicht bei mehreren Connections?

[php] mysql_insert_id() nicht bei mehreren Connections?

Matthias Jim Knopf jim_(at)_users.de
Tue, 15 Aug 2000 00:06:55 +0200 (MEST)


On Mon, 14 Aug 2000, Egon Schmid (_(at)_work) wrote:
 
> > > Und was ist, wenn die Query nicht funktioniert hat? Paul DuBois schreibt
> > > dazu:
> > 
> >     jaja bla bla! Ich weiss nicht, wozu ich eigentlich mir so  viel
> >  Muehe gegeben habe, das Script zu  dokumentieren:  Da  steht  danz
> >  fett: "Damit das GANZ klar nochmal gesagt  wird:  Die  query  oben
> >  ist  erfolgreich"  und  zum  Beweis  bekomme  ich  ja   oben   die
> >  $res-Variable ausgegeben: "$res: 1"
> 
> Also ich klinke mich mal hier aus. Ich glaube Dir ja dass Du dir Mühe
> machst, aber warum machst Du nicht was ich Dir sage.

    Okay, ich glaube, ich muss nochmal einen  Gang  runterschalten, 
 auch wenn das dann schon fast der Rueckwaertsgang ist:

 $res=mysql_query("insert into my_table (field) values (123)");
 echo ($res); // das gibt "1" aus.

 Was meinst Du, was jetzt ein
 if (!$res) die ("das war falsch"); // bewirkt??? Garnichts, weil
 wir ja schon gesehen haben,  dass  $res=1  und  somit TRUE ist!
    Natuerlich sollte man eigentlich nach der  Query  das  Resultat 
 abfragen, aber nicht, wenn  man  eine  TODO-Liste  hat,  die  seit 
 Monaten nur noch waechst! Dann will man fertig  werden  und  nicht 
 "schoen" programmieren, bzw neu programmieren,  was  schon  funzt! 
 Und das insert-statement FUNZT!

> > > Du solltest eine Fehlerüberprüfung bei $res = sql_query (...) or die
> > > ("Hat nicht funktioniert"); reinbauen.
> > 
> >     eigentlich schon, aber wie gesagt:  Sie  IST  erfolgreich.  Wie
> >  man  vielleicht  erkennen  kann,  wird  hiermit  ein  User-Account
> >  angelegt, und dieser  Account  ist  nachher  auch  vorhanden,  nur
> >  weiss ich halt nicht seine ID !
> 
> Das glaube ich Dir nicht.

    Junge, ich weiss nicht, ob ich es  Dir  SCHWOEREN  soll?!?  Was 
 muss ich sonst  noch  machen,  damit  Du  mir  glaubst,  dass  das 
 insert-statement funktioniert, mysql_insert_id() aber nicht???

> Es ist doch so einfach nach der User ID in der
> mit PHP in der Datenbank zu suchen.

    Ja, weil auch zufaellig der Name in dieser Tabelle eindeutig zu 
 sein hat, aber das war nur der "schoenste"  Teil  meines  Scripts. 
 Wie schon geschrieben: Ich verwende 69 Insert-Statements, und  bei 
 den meisten ist die AUTO_INCREMENT-ID das einzige, was  garantiert 
 eindeutig ist,  und  daher  kann  ich  auch  nicht  im  Nachhinein 
 testen, welche ID zu dem gerade eingefuegten Datensatz  passt!  Es 
 GEHT  NICHT!  Dafuer  gibt  es  ja  die  kuenstlich   eingefuegten 
 Primary-Keys, weil nix anderes eindeutig ist!

> > > >    $handler    = _(at)_mysql_connect("$jura_host","$jura_user","$jura_pass");
> > > >    _(at)_mysql_select_db ($jura_db, $handler);
> > >
> > > Das _(at)_-Zeichen bitte beim Debuggen entfernen.
> > 
> > Das ist nicht mein Script, ich verwende fast nie _(at)_
> > Aber auch hier wird auch ohne _(at)_ kein Fehler ausgegeben.

> Das ist auch ein Fehler, wenn Du  schreibst  "ich  verwende
> fast nie _(at)_"
kein Kommentar.

    Doch einer: Programmierst Du C? Fragst Du den  return-wert  von 
 printf()  ab,  um  zu  schauen,  ob  auch  wirklich  ALLE  Zeichen 
 geschrieben wurden, obwohl Du doch auf dem Bildschirm siehst, dass 
 das der Fall ist? Wohl kaum. Es gibt Code-Zeilen, da  braucht  man 
 nicht abzufragen, und wenn es laeuft, dann laeufts.  Ich  schreibe 
 hier nicht fuer die Uni  ein  Projekt,  bei  dem  es  um  schoenen 
 Programmcode oder atomkraftwerksichere Routinen geht, sondern  das 
 Teil muss Geld verdienen!

> PS: Also ich geh jetzt langsam nach Hause und helf der Sue Bailey in
> England beim parsen von XML-Dateien mit PHP. Die bedankt sich wenigstens
> bei mir, dass sie ein Schritt weiter gekommen ist.

    Die Diskussion mit Dir war  vielleicht  interessant,  aber  auf 
 jeden Fall nevenaufreibend und leider wenig produktiv. Das Problem 
 ist, dass Du mir ja nicht glaubst! Ich sagte (mehrfach), dass eine 
 Anweisung erfolgreich ist. Wenn es drauf ankaeme, koennte ich  Dir 
 ja nen MySQL-Account geben,  dann  wuerdest  Du  sehen,  dass  ich 
 Recht  habe  (warum  sollte  ich  mich  auch  selber  bescheissen, 
 schliesslich will ich hier Hilfe  bekommen,  und  krieg  die  nur, 
 wenn ich moeglichst genau mein Problem schildere).
    Zu diesem speziellen Fall: Der User wird angelegt, nur  bekommt 
 sein "Home-Verzeichnis" nicht die ID des neuen Users;  es  gehoert 
 ihm also nicht, wie es eigentlich sein sollte, und das,  weil  ich 
 die ID dieses Users nicht bekommen habe, wie  es  eigentlich  sein 
 sollte. Aber was schreibe ich hier  eigentlich  so  lange  Romane, 
 das liesst doch eh kein Arsch...

Diese Sendung wurde Ihnen praesentiert von Jim
PGP encrypted mails welcome! Key on any keyserver or ftp://users.de
Unix IS user friendly, it is just selective about who his friends are.




php::bar PHP Wiki   -   Listenarchive