이 글에서 다룰 함수들은,
MySQL에서 데이터를 불러 오고 총 행,열이 얼마나 되는지 확인하기 위한 함수들이다.
역시나 내가 매번 찾아보기 힘들어서 정리한 글이다. ^^;
SQL을 사용 할 때는 서버 접속정보가 담긴 php파일을 만들어놓고 필요할 때 마다 불러와서 쓰는게 사용하기 편하다.
아래 예제예서 반복적으로 Include 할 db.php의 내용.
db.php 내용
<?php $conn = mysqli_connect("localhost","repnam","password"); //SQL 접속 ID는 repnam, //비밀번호는 password mysqli_select_db($conn, "repnam"); //db는'repnam'DB선택 ?>
localhost의 의미
일반적으로 웹 서버와 SQL서버는 하나의 서버에서 사용하기에 자신의 ip주소나 도메인 대신 ‘localhost’를 이용하여 적는다.
mysqli_select_db() 함수의 역할
SQL내에서 DB를 선택하는 역할을 한다.
웹 호스팅을 사용할 경우 일반적으로 한개의 MySQL DB만 제공된다.
보통 하나의 사이트에서는 하나의 DB만 쓴다.
처음에 아무것도 모르고 자가에서 웹서버를 돌릴 때 목적별로 여러개의 DB를 생성했는데
이걸 나중에 외부 웹서버(호스팅)로 옮기면서 하나의 DB안에서만 사용하는 페이지로 고쳤던 기억이 난다.
DB는 하나더라도 여러개의 테이블을 생성하여 사용할 수 있으니
자신의 PC에서 PHP, MySQL을 시험삼아 쓰는 경우 한개의 DB만 사용하는게 좋다. 나중에 호스팅 서비스로 옮길 수도 있으니까.
PHP로 Mysql DB를 불러오기
먼저 DB에서 기본적으로 불러오기.
<?php include "db.php"; $sql = "SELECT * FROM `ib_check` WHERE `trackingno` = '123456784321'"; $result = mysqli_query($conn, $sql); //db.php내에 선언된 접속정보 ($conn변수)를 // 이용해 데이터를 불러온다 $num = mysqli_num_rows($result); //결과값의 총'열'수를 반환한다. while($row = mysqli_fetch_assoc($result)){ //해당하는 송장번호와 수신인을 표현한다. echo $row['trackingno']." ".$row['addressee']."<br>"; } echo "결과는 총 ".$num." 열 입니다."; ?>
mysqli_num_rows()의 역할
보통 한 송장번호로는 하나의 열만 나와야 하는데 하나의 열이 나오는지를 굳이 확인하기 위해 mysqli_num_rows()함수를 이용하여 열 수를 받았다.
mysqli_fetch_assoc()를 반복문 안에 넣기
mysqli_fetch_assoc() 함수는 한번 호출 될 때 마다 한 열씩 데이터를 반환한다.
예를들어
$row = mysqli_fetch_assoc($result);
의 경우
SQL쿼리의 결과는 $result 변수에 들어있고.
mysqli_fetch_assoc($result) 함수를 한 번 호출할 때 마다 한 열의 데이터가 $row로 들어간다.
더 이상 들어갈 데이터가 없으면 NULL이 반환되어 while문이 종료되는 형식이다.