2017-09-29 41 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

相关问题