如果用户存在于数据库中,如何获取用户ID?
问题描述:
我有一个数据库由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?
答
如果您希望只有一列,你可以使用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
要澄清,您希望函数获取'personid'还是希望查询检查现有数据? – Swellar
如果使用PDO,则需要在绑定名称前加冒号。 –
我已经检查过用户是否存在,之后我想通过他的姓名和电话获得他的ID – Danny