웹보안) DataBase 와 PHP
DataBase 에서 입력, 수정, 삭제는 쿼리가 제대로 실행 되었는지(성공) 안되었는지(실패) 둘중 하나밖에 없다.
select : 조건에 만족하는 결과가 있다면 다 가져올 수 있다, 실패하면 false가 출력되고 성공하면 resource를 출력.
쿼리를 성공했는지 실패했는지 두가지 밖에 없다. 어떤 값을 입력하느냐에 따라 리턴값이 달라진다.
조회
- 조건에 맞는 조회된 데이터가 있는가? (조회된 데이터가 있다면 모두 가져올 수 있음)
- 조건에 맞는 조회된 데이터가 없는가?
웹 브라우저에서 화면이 한번 출력되면 코드는 끝이다.
alter 쿼리를 이용하면 no 번호도 새로 초기화가 가능하다
출력의 개수를 알 수 있는게 num rows이다.
즉 select 에서 실행한 결과가 num rows로 들어감. false이 아닌 경우만
$link= mysql_connect('localhost','root',password1!'); 를 통해 db로 연결(로그인)시키는 과정을 link에 저장.
$ret = mysql_select_db('user',$link); 를 통해 로그인한 값을 link를 실행시킴과 동시에 db에서 user 계정 선택.
if( !isset($_REQUEST[id]) or !isset($_REQUEST[pw]) or $_REQUEST[id]==='' or $_REQUEST[PW]==='');
-> id 혹은 pw가 실행되지 않을때, id 혹은 pw를 입력하지 않았을 때 라는 의미.
form 을 통해 로그인 창을 만들어 준다.
그 폼이 실행하면 action=db.php로 인해 db.php로 넘어가게 된다.
오류메세지를 출력. 어디가 에러났는지 알려준다.
웹의 문제가 아니라 이건 콘솔(vi)에서 오류(오타,세미콜론 등)가 났을때 실행된다.
$cnt = mysql_num_rows($resource);
-> resource의 개수를 $cnt에 저장.
$row = mysql_fetch_array($resource, MYSQL_BOTH);
-> 배열 형식으로 resource를 출력한다.
select * from user_info where id ="999"
select로 user_info의 id 중 999인 것을 출력해본다
두개가 저장되어 있는 것을 확인할 수 있다.
즉 위의 웹에서 출력했을 때 나온 결과와 같으니 제대로 연결되었음을 확인할 수 있다.