2017-09-29 83 views
-1

我有一個數據庫由2個表格組成,它們之間有一對多的關係。如果用戶存在於數據庫中,如何獲取用戶ID?

第一個表「數據」有(姓名,電話,personid)列。

第二個表「鏈接」有(linkid,link,personid)列。

我想插入一個新的鏈接到一個人的鏈接,如果他已經存在於數據表中。

$statement = $connect->prepare("SELECT * FROM data WHERE name = :sname AND phone = :sphone"); 
$statement->execute(array('sname' => $name , 'sphone' => $phone)); 
$count = $statement->rowCount(); 


if($count > 0){  
$st = $connect->prepare("SELECT personid FROM data WHERE name = :sname AND phone = :sphone"); 
$id = $st->execute(array('sname' => $name , 'sphone' => $phone)); 

我想如果用戶如果他存在,用它來插入一個新的鏈接,鏈接他拿到ID,所以,我怎麼能得到的ID?

+0

要澄清,您希望函數獲取'personid'還是希望查詢檢查現有數據? – Swellar

+0

如果使用PDO,則需要在綁定名稱前加冒號。 –

+0

我已經檢查過用戶是否存在,之後我想通過他的姓名和電話獲得他的ID – Danny

回答

1

如果您希望只有一列,你可以使用fetchColumn()

$st = $connect->prepare("SELECT personid FROM data WHERE name = :sname AND phone = :sphone"); 
$st->execute(array('sname' => $name , 'sphone' => $phone)); 
$personID = $st->fetchColumn(); 

您也可以使用fetch()如果你期待一個單列的回報:

$st = $connect->prepare("SELECT personid FROM data WHERE name = :sname AND phone = :sphone"); 
$st->execute(array('sname' => $name , 'sphone' => $phone)); 
$row= $st->fetch(PDO::FETCH_ASSOC); 
$personID = $row['personid']; 

$personID應保持數據from personid從列表中返回的列

注意:如果您已經在連接中設置了獲取樣式,那麼可以省略PDO::FETCH_ASSOC

相關問題