(php)无法从表中获取id

时间:2016-09-25 16:26:20

标签: php mysql

我有两个表,我想将数据添加到第一个表,并从id获取新插入数据的first table,并使用它将数据添加到second table

$statement = $dbh->prepare("INSERT INTO sis_university (name,site,tel,email,adress) VALUES (:name,:site,:tel,:email,:adress);");
    if($statement->execute(array(':name' => $name,':site' => $site,':tel' => $tel,':email' => $email, ':adress' => $adress))){

        $sql="SELECT id FROM sis_university WHERE site='$site' LIMIT 1";

        $result = mysql_query($sql);
        $row = mysql_fetch_array($result);
        $uniid = $row['id'];

        $statement = $dbh->prepare("INSERT INTO sis_admin (username,password,name,tel,email,adress,type,universityid) VALUES (:username,:password,:name,:tel,:email,:adress,:type,:universityid);");
        if($statement->execute(array(':username' => $username,':password' => $password,':name' => $adminname,':tel' => $admintel, ':email' => $adminemail, ':adress' => $adminadress, ':type' => $admintype, ':universityid' => $uniid))){
            echo "success";
        }else{
            echo "failure" . " " . $uniid;
        }
    }else{
        echo "failure";
    } 

数据已成功添加到第一个表中,但$uniid为空且数据未添加到第二个表格

4 个答案:

答案 0 :(得分:3)

您可以使用mysql_insert_id函数http://php.net/manual/es/function.mysql-insert-id.php

只需在mysql_query

之后执行
$id = mysql_insert_id() ;

答案 1 :(得分:1)

您可以使用insert-id获取最后插入行的ID

答案 2 :(得分:1)

抬头,您正在使用已弃用的MySQL扩展程序。切换到MySQLi或pdo。

要插入最后一个ID,您可以:

  

mysqli_insert_id()函数返回查询生成的ID,该表具有一个具有AUTO_INCREMENT属性的列。

如果你坚持不推荐使用mysql,那么还有mysql_insert_id

答案 3 :(得分:1)

  

注意: Mysql的使用已过时,您最好使用mysqli.*PDO以及准备好的语句。

方法:1

在您的查询中,您可以在mysqli_insert_id()的帮助下获取latest Inserted ID

mysqli_insert_id()将在执行查询后运行。

方法:2

根据您的结构,您可以使用以下代码以便在插入后获取ID。

确保为此使用echo语句并查看是否在此处获取数据。

echo $sql="SELECT id FROM sis_university WHERE site='".$site."' LIMIT 1";
exit; // This break the execution over here.

并确保您是否正确查询。

示例:

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// Print auto-generated id
echo "New record has id: " . mysqli_insert_id($con);

mysqli_close($con);
?>