如何获取插入表中的行的自动生成的ID?

时间:2015-02-11 11:37:22

标签: javascript php mysql

我正在设计酒店预订系统,在插入客户信息后,我必须发回一个带有booking_id的确认页面,这是在插入客户信息时自动生成的。

我的问题是如何在插入数据后在相同的PHP代码中获取预订ID

请注意更多,一个人正在插入数据,所以我认为仅通过返回最后插入的行无法实现 请帮帮我。

我的javascript是:

<script>
    $(document).ready(function(){
        $("#register-form").validate({
            rules: {
                userName: "required",                           
                email: {
                    required: true,
                    email: true
                },                                              
                userContactNumber: "required"                       
            },
            messages: {
                userName: "Please enter your Name",
                userContactNumber: "Please enter your Mobile number",                           
                email: "Please enter a valid email address",                                           
            },
            submitHandler: function(form) {

                var uName = $('#userName').val();   
                var mailId = $('#email').val();                 
                var mobNum = $('#userContactNumber').val();

                $.ajax({                
                    url:"http://localhost/bookRoom/book.php",
                    type:"POST",
                    dataType:"json",
                    data:{type:"booking", Name:uName, Email:mailId,  Mob_Num:mobNum},                                   
                    ContentType:"application/json",
                    success: function(response){                            
                        window.location.href = 'BookingConformation.html';
                    },
                    error: function(err){                           
                        window.location.href = 'error.html';
                    }
                });
                return false; // block regular submit
            }
        });
    });
</script>

我的服务代码book.php

<?php
    header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request
    mysql_connect("localhost","root","2190");
    mysql_select_db("hotels");

    if(isset($_POST['type']))
    {
        if($_POST['type']=="booking"){
            $name = $_POST ['Name'];               
            $mobile = $_POST ['Mob_Num'];
            $mail = $_POST ['Email'];               
            $query1 = "insert into customer(userName, userContactNumber, email) values('$name','$mobile','$mail')";
            $query2 = "insert into booking(cust_name, cust_email, cust_mobile) values('$name', '$mail','$mobile')";         

            $result1=mysql_query($query1);

            $result2=mysql_query($query2);
            echo json_encode($result1);
        }
    }
    else{
        echo "Invalid format";
    }
?>

5 个答案:

答案 0 :(得分:1)

将它插入数据库后,您将使用mysql_insert_id()获取它。它会自动返回最新的自动增量ID。更好的一个 - 使用PDO或MySQLI因为mysql_insert_id()已被弃用。

答案 1 :(得分:0)

您可以在PHP中使用mysql_insert_id()函数来获取最后插入的ID

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id());

答案 2 :(得分:0)

使用此获取最后插入的ID并使用

$last_id = $conn->insert_id;

答案 3 :(得分:0)

你可以使用mysql_insert_id()来获取插入的id

  $result1=mysql_query($query1);
  echo mysql_insert_id()

答案 4 :(得分:0)

不要回复查询结果。

使用:mysql_insert_id()mysqli_insert_id()返回预订ID。 注意:使用mysql_insert_id时要小心,因为它在PHP 5.5中已经过折旧,并且将来会被删除

$id = mysql_insert_id();
echo json_encode($id);

然后在你的ajax成功函数中使用php文件而不是html并传递这个变量:

success: function(response){                            
                        window.location.href = "BookingConformation.php?bookingID='+response+'";
                    }

然后在bookingConfirmation.php文件中使用get方法获取此变量:

$bookingID=$_GET['bookingID'];
eco $bookinID; //gives your booking id