[MSSQL] Problem mit LAST_INSERT_ID()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MSSQL] Problem mit LAST_INSERT_ID()

    Hallo
    Also ich folgens Problem
    Zuerst mal mein Datenbank SQL
    1.Tabelle Person
    pers_id int 4 (Ja (nicht zur Replikation))PS
    ....
    ....
    ....
    -----------
    2.Tabelle Geraete
    ger_id int 4 (Ja (nicht zur Replikation))PS
    ....
    ....
    ....
    ------
    2.Tabelle zusammen
    zusammen_id int 4 (Ja (nicht zur Replikation))PS
    pers_id int 4 Fs(Person)
    ger_id int 4 Fs(Geraete)
    ....
    ....
    ....
    -----
    So mein Problem ist ich will in meinen Insert von der
    Tabelle 1 (pers_id)und Tabelle 2 (ger_id)in die Tabelle 3
    (pers_id)(ger_id)speicher lassen ich weis das es mit demm befehl (LAST_INSERT_ID())
    mein insert;
    Code:
     $sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email)
      VALUES ('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
    		$rs = $db->Execute($sql);
     $sqll = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie)
    	VALUES ('{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
    		$rs = $db->Execute($sqll);
    Wie mach ich das am besten????

  • #2
    Kannst Du die Frage auch irgendwie in deutsch formulieren ... ?!?!?!?!?!?!
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Versteh ich auch net ganz, 2 Werte / Felder oder 2 Tabellen in eine zusammenfassen ?
      -> It`s good to be bad! <-

      http://de.php.net
      http://php-faq.de
      http://www.schattenbaum.net
      http://www.dreamcodes.com

      Kommentar


      • #4
        ok noch mal .

        Ich möchte gern das die(tabelle1) pers_id und das(tabelle2) ger_id
        in die dritte tabelle eingetragen wird.

        Kommentar


        • #5
          laß dir nach dem insert jeweils die ids zurückgeben, und schreib sie in die tabelle ...

          http://www.php-resource.de/manual.ph...ysql-insert-id
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            ... oder du speicherst es einfach in einer MySQL Uservariablen zwischen ....

            INSERT INTO ...
            SET @pers_id=LAST_INSERT_ID();
            INSERT INTO ...
            SET @ger_id=LAST_INSERT_ID();
            INSERT INTO tabelle3 (pers_id, ger_id) VALUES (@pers_id, @ger_id);
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Danke erstmal für eure Antworten

              aber leider geht das nicht.

              hier noch mal meine insert .

              Code:
              $sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email)
              VALUES ('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','
              {$telefon}','{$mobile}','{$fax}','{$email}')";
              SET $pers_id=LAST_INSERT_ID();
              $rs = $db->Execute($sqll);
              
              $sqll = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie)
              VALUES '{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
              SET $ger_id=LAST_INSERT_ID();
              $rs = $db->Execute($sqll);
              
              $sqlll =INSERT INTO test (pers_id,ger_id) VALUES ('{$pers_id}','{$ger_id}');
              das mit dem @ geht auch nicht.
              Oder habe ich was falsch gemacht?????
              Zuletzt geändert von dingo; 14.07.2004, 19:33.

              Kommentar


              • #8
                Ich meinte sowas in der Art:
                PHP-Code:
                $sql "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email) VALUES  ('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
                $db->Execute($sql);
                $db->Execute("SET @pers_id=LAST_INSERT_ID()");

                $sql "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie) VALUES '{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
                $db->Execute($sql);
                $db->Execute("SET @ger_id=LAST_INSERT_ID()");

                $db->Execute("INSERT INTO test (pers_id,ger_id) VALUES (@pers_id, @ger_id)"); 
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  Code:
                  $sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email) VALUES  ('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
                  $db->Execute($sql);
                  $db->Execute("SET $pers_id=LAST_INSERT_ID()");
                  $sql = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie) VALUES '{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
                  $db->Execute($sql);
                  $db->Execute("SET $ger_id=LAST_INSERT_ID()");
                  $db->Execute("INSERT INTO test (pers_id,ger_id) VALUES ('{$pers_id}','{$ger_id}')");
                  jetz habe ich nur noch die Fehlermeldung
                  Warning: (null)(): Invoke() failed: Ausnahmefehler aufgetreten. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC SQL Server Driver][SQL Server]Zeile 1: Falsche Syntax in der Nähe von '='. in C:\xampp\htdocs\test\index.php on line 25
                  Code:
                  $db->Execute("SET @pers_id=LAST_INSERT_ID()");
                  Warning: (null)(): Invoke() failed: Ausnahmefehler aufgetreten. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC SQL Server Driver][SQL Server]Zeile 1: Falsche Syntax in der Nähe von '322432'. in C:\xampp\htdocs\test\index.php on line 28
                  Code:
                  $sql = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie) VALUES '{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
                  $db->Execute($sql);
                  Warning: (null)(): Invoke() failed: Ausnahmefehler aufgetreten. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC SQL Server Driver][SQL Server]Zeile 1: Falsche Syntax in der Nähe von '='. in C:\xampp\htdocs\test\index.php on line 29
                  Code:
                  $db->Execute("SET @ger_id=LAST_INSERT_ID()");

                  Kommentar


                  • #10
                    So ... in dem Falle fangen wir noch einmal von vorne an ... welche Datenbank setzt Du überhaupt ein ... ?!

                    Ohne nähere Angabe geht man hier erstmal von MySQL aus ... wenn's MySQL ist ... warum verwendest DU dann ODBC?
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      Im übrigen ... im allgemeinen weiss ich was ich schreibe ... wenn da ein @ steht, dann meine ich kein $ ... !
                      carpe noctem

                      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                      Kommentar


                      • #12
                        Ich weis das da ein @ stand das geht aber damit nicht.
                        Jch spreche ein SQL datenbank an.

                        Verbindung
                        Code:
                        $db = new COM("ADODB.Connection");
                        $dsn = "DRIVER={SQL Server}; SERVER={MICK};UID={};PWD={}; DATABASE={verwaltung}";
                        $db->Open($dsn);
                        $rs = $db->Execute("SELECT * FROM Person,Geraete");

                        Kommentar


                        • #13
                          Hätte man wegen des FOR REPLICATION drauf kommen könne ... sekunde ...
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar


                          • #14
                            was ist mit

                            PHP-Code:
                            $db->debug=true
                            Macht er da das was du willst ?
                            Poste dann mal die abfrage die du angzeigt bekommst.
                            -> It`s good to be bad! <-

                            http://de.php.net
                            http://php-faq.de
                            http://www.schattenbaum.net
                            http://www.dreamcodes.com

                            Kommentar


                            • #15
                              jo der macht nicht das was ihm sage. Da hast du recht.

                              Kommentar

                              Lädt...
                              X