2017-09-29 10 views
-1

Ich habe eine Datenbank besteht aus 2 Tabellen mit einer Beziehung zwischen ihnen.Wie bekomme ich die Benutzer-ID, wenn der Benutzer in der Datenbank existiert?

Die erste Tabelle "Daten" hat Spalten (Name, Telefon, Personid).

Die zweite Tabelle "Links" hat Spalten (Linkid, Link, Personid).

Ich möchte einen neuen Link zu den Links einer Person einfügen, wenn er bereits in der Datentabelle vorhanden ist.

$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)); 

Ich mag die ID erhalten, wenn der Benutzer, wenn er vorhanden ist, es zu verwenden, um eine neue Verbindung zu seinen Links einzufügen, Wie kann ich die ID bekommen?

+0

weglassen. Sie möchten, dass die Funktion die 'personid' erhält oder ob die Abfrage nach vorhandenen Daten suchen soll? – Swellar

+0

Wenn Sie PDO verwenden, müssen Sie einen Doppelpunkt vor den Bind-Namen einfügen. –

+0

Ich überprüfe bereits, ob der Benutzer existiert oder nicht, danach möchte ich seine ID mit seinem Namen und Telefon – Danny

Antwort

1

Wenn Sie eine Spalte nur erwarten, können Sie fetchColumn() verwenden:

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

Sie auch fetch() verwenden können, wenn Sie eine einzelne Zeile Rückkehr erwarten:

$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 sollten die Daten halten von personid Spalte von der Abfrage zurückgegeben

Hinweis: Wenn Sie den Abrufstil bereits in Ihrer Verbindung festgelegt haben, können Sie PDO::FETCH_ASSOC

Verwandte Themen