2016-09-25 51 views
0

獲得ID我有兩個表,我想將數據添加到第一臺和first table獲得新插入的數據的id並用它來將數據添加到second table(PHP)不能從表

$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爲null,並且數據不會被添加到該第二teble

+0

你得到的溶液兄弟:) –

+0

後,只需執行你似乎是混合正規,棄用'sql_'函數和'PDO'語法與sql – RamRaider

+0

中的佔位符,你真的不希望你的代碼工作,而不是混合不同的API,它不會。 –

回答

1

您可以使用嵌入ID爲獲得最後插入的行的ID

1

擡起頭,你正在使用不推薦使用的MySQL擴展。切換到MySQLi或pdo。

得到最後ID插入您能給我們:

的mysqli_insert_id()函數返回查詢生成的ID在桌子上與具有AUTO_INCREMENT屬性的列。

如果你堅持棄用MySQL的存在也mysql_insert_id

1

注:Mysql用法是過時的,它是更好的使用mysqli.*PDO與預處理語句一起。

方法:1

在您的查詢就可以得到latest Inserted ID與mysqli_insert_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); 
?>