2017-09-29 1 views
-1

데이터베이스가 1 대 다수의 관계가있는 2 개의 테이블로 구성되어 있습니다.사용자가 데이터베이스에있는 경우 사용자 ID를 얻는 방법은 무엇입니까?

첫 번째 테이블 "data"에는 (name, phone, personid) 열이 있습니다.

두 번째 테이블 "links"에는 (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)); 
$row= $st->fetch(PDO::FETCH_ASSOC); 
$personID = $row['personid']; 

$personID이 데이터를 보유해야한다 : 단일 행 수익을 기대하는 경우

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

또한 fetch()을 사용할 수 있습니다 from personid 쿼리에서 반환 된 열

참고 : 연결에서 가져 오기 스타일을 이미 설정 한 경우 PDO::FETCH_ASSOC

관련 문제