-1

挿入した自動インクリメント フィールドの insert_id を取得しようとするスクリプトがあります。

            $db = new mysqli("localhost", "user", "pass", "db");    

            for($xx=0;$xx<$quantity;$xx++){
                //quantity is the total number of tickets bought
            /* check connection */
            if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                //exit();
            }

            $payer_email = $db->real_escape_string($payer_email);
            $name = $db->real_escape_string($name);

            $query = "INSERT INTO `ticketsConference2013`  VALUES (NULL, '".$payer_email."', '".$name."', null)";
            $db->query($query);
            $ticketIdIs=""; 
            $ticketIdIs = $db->insert_id;

                $html.='<p style="text-align:center;line-height:100%">Ticket number'.$ticketIdIs.'</p>';

            $textIs = $name." ".($xx+1)." of ".$quantity;

            $pdf->writeHTML($html, true, false, true, false, '');

            $pdf->Cell(0, 0, 'CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9', 0, 1);
            $pdf->write1DBarcode($textIs, 'C39', '', '', '', 18, 0.4, $style, 'N');

            }
            $db->close();

データベースに正常に挿入されますが、実行されるたびに挿入IDは最初の挿入番号のみを提供します。データベース内の実際の挿入数は反映されません。

これについて少し読んだことがありますが、いじってもうまくいきません

4

1 に答える 1

0

これを試してください:

  $query = "INSERT INTO `ticketsConference2013`  VALUES (NULL, '".$payer_email."', '".$name."', null)";
               if( $db->query($query)){
                $ticketIdIs=""; 
                $ticketIdIs = $db->insert_id;
}
于 2013-09-06T17:18:03.533 に答える