Insert erfolgreich, aber....

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

  • Insert erfolgreich, aber....

    Auf dem System laufen zwei Datenbanken-Verbindung über die Klasse: cms_functions -> Ausszugsweise:

    PHP-Code:
    <?
    /**
     * functions.php
     *
     */
    error_reporting (E_ALL);

    ini_set('display_errors', TRUE);

    class dbconn
      {
      var $connect = false;

      /* dbconn - The Class-Construktor */

      function dbconn($host, $user, $pass, $name)
        {
        $this->connect=mysql_connect($host, $user, $pass, TRUE) or die(mysql_error());
        mysql_select_db($name, $this->connect) or die(mysql_error());
        }

      /* liefert Datenbank Query */

      function query($query) { return mysql_query($query, $this->connect); }
      }

    ;
    $db1=new dbconn(host, user, pass, name);
    $db2=new dbconn(host2, user2, pass2, name2);
    ?>
    so wenn jetzt aber folgende funkion aufgerufen wird, werden zwar Einträge in der Tabelle Orders vorgenommen, allerdings wird mir die last_insert_id nicht zurückgegeben ?!?
    PHP-Code:
    /* Eintrag der aktuellen Bestellung in tbl_orders */
      
    function completeOrder($bill_adr_id$deliv_adr_id$pay_id)
        {
        global 
    $session$db1;

        
    /* Bestimmung userID aus session-Name */
        
    $con_ref_id=$this->getConRefID($session->username);

        
    /* legt den Startwert für den 'Mersenne-Twister'-Zufallsgenerator von mt_rand() fest */
        
    mt_srand((double)microtime() * 100);

        
    /* Bestellnummer: Zufallszahl-timestamp */
        
    $ord_number="" mt_rand() . "-" date("mdY") . "";

        for (
    $i=0$i count($session->shopping_cart); $i++)
          {
          
    $row           $this->getRows($session->shopping_cart[$i]['prod_id']);
          
    $ord_prod_id   =$row[0];
          
    $check="0";

          if (!empty(
    $row[6]) && !empty($row[7]))
            
    $check=$this->checkValidSpecialPrice($row[7], $row[8]);

          if (
    $check == 1)
            
    $ord_unit_price=$row[6];
          else
            
    $ord_unit_price=$row[5];

          
    $size          =explode(","$row[12]);
          
    $key           =array_keys($size$session->shopping_cart[$i]['prod_size']);
          
    $size_col      =explode(","$row[13]);
          
    $size_col      ="ord_" $size_col[$key[0]] . "";
          
    $size_col_cnt  =$session->shopping_cart[$i]['prod_count'];
          
    $query         ="INSERT INTO " tbl_orders " (ord_id,ord_number,ord_cust_id,ord_prod_id,ord_pay_adr_id,
                             ord_deliv_adr_id,ord_pay_id,
    $size_col,ord_unit_price) VALUES('','$ord_number','$con_ref_id',
                            '
    $ord_prod_id','$bill_adr_id','$deliv_adr_id','$pay_id','$size_col_cnt','$ord_unit_price')";
         
    $result=$db1->query($query);
          }

         return 
    mysql_insert_id();
        } 
    Weiss jemand Rat
    mfG
    derRupo
    Manchmal verliert ma eben ... und manchmal gewinnen die Anderen

  • #2
    Vorab: Wo du doch eine DB-Klasse hast, warum streust du dann mysql_insert_id() in deinen Code? Definiere eine Methode dafür in der DB-Klasse.

    Was wird denn zurückgegeben?
    http://php.net/mysql_insert_id
    The ID generated for an AUTO_INCREMENT column by the previous INSERT query on success, 0 if the previous query does not generate an AUTO_INCREMENT value, or FALSE if no MySQL connection was established.

    Kommentar


    • #3
      Du fügst bei $db1 ein, die zuletzt hergestellt Verbindung ist aber $db2.

      Laut Doku liefert dir mysql_insert_id einen Wert bezogen auf die Verbindung, die du explizit angibst (hier: keine), oder die zuletzt geöffnete (hier: $db2)
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Original geschrieben von onemorenerd
        Vorab: Wo du doch eine DB-Klasse hast, warum streust du dann mysql_insert_id() in deinen Code? Definiere eine Methode dafür in der DB-Klasse.
        hab ich ja gemacht, aber wollte das Problemchen nicht ungelöst liegen lassen, aber ich habs:
        PHP-Code:
        mysql_insert_id($db1->connect
        Danke
        derTrallala
        Manchmal verliert ma eben ... und manchmal gewinnen die Anderen

        Kommentar

        Lädt...
        X