건프의 소소한 개발이야기

[MySQL - PHP] PHP를 이용해서 DB 다루기 (2) - SELECT 본문

개발 이야기/MySQL(DB) 이야기

[MySQL - PHP] PHP를 이용해서 DB 다루기 (2) - SELECT

건강한프로그래머 2016. 5. 10. 21:45

안녕하세요, 건프입니다.


Connection 을 얻는 방법을 알았으니, 이제 다음 4가지를 할 줄 알아야 합니다.


1. 찾기(검색하기) - SELECT

2. 쓰기(삽입하기) - INSERT

3. 바꾸기(업데이트) - UPDATE

4. 없애기(삭제하기) - DELETE



그 중 첫번째, SELECT 에 대한 이야기 입니다. 


예를들어 로그인을 체크하는 프로그램을 만든다고 하면,

sql 문을 다음과 같이 작성하므로써, 유저정보의 전체 값을 가져올 수 있습니다.




select 의 기본문법은 

select (가져올 칼럼명들...) from (테이블명) where (조건들...) 등등 입니다. 대소문자는 가리지 않습니다.

가져올 칼럼명 자리에, 모든 칼럼의 내용을 가져오고 싶다면, * (와일드카드) 를 씁니다. 


대표적 사용예

$sql = "SELECT * FROM ".CLIENT_TABLE." WHERE user_id <> '{$value['user_id']}' ORDER BY created DESC";


위 경우, USER_TABLE (미리 정의한 문자열상수) 에서 모든 칼럼의 내용을 가져와 달라는 의미겠죠. 

그결과가 $result 변수 안에 담깁니다.


이것을 풀어 해쳐 보는 방법은 다음과 같습니다.



mysqli_fetch_assoc() 내장함수를 이용해서, 인자로 $result 를 넘겨주면, 이를 부를때마다, $result 에 담겨있던 row 정보 하나씩 하나씩 뽑아서 넘겨줍니다.

그래서 while문과 저런식으로 많이 사용합니다.


넘어온 $row 는 PHP 에서 "연관배열" 형태로 넘어오기 때문에, 칼럼 이름으로 접근해서 그 값을 뽑아내 알아내면 됩니다.



물론 위의 작업을 진행할때,

애초에 sql 문 자체에서 where (조건) 으로 userid 와 pw 를 찾아서 넘기도록 할 수도 있습니다.

다만 여기서는 하나하나의 row를 어떻게 뽑아내고 사용하는지를 보여드리고 싶었습니다. 


도움이 되었길 바랍니다 :)


Comments