PHP에서 MySQL로 DB 관련 함수

이 글에서 다룰 함수들은,
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문이 종료되는 형식이다.

함께 읽어볼만한 글

Leave a Comment