mysql vs mysqli
mysql과 mysqli의 차이는 매개변수 전달 순서가 다르고 (확실하지 못함)
mysqli가 mysql 명령에 비해 빠르고 안전한다 정도만 알고 가자.
mysqli($sql_host,$sql_id,$sql_pw)
PHP에서 SQL로 접근하기 위한 PHP함수이다.
인자로 host 주소와, id, pw를 전달하여 sql과 연결한다.
<?php $SQL_host="localhost"; $SQL_id="php_user"; $SQL_pw="****"; $conn=new mysqli($SQL_host,$SQL_id,$SQL_pw); if(!$conn){ echo "Connetion fail<br/>"; }else{ echo "Connetied Successfully<br/>"; } ?>
분석
2~3번 줄 : SQL 주소, ID, PW를 변수로 저장한다. 직접 전달해도 상관없다.
6번째 줄 : mysqli()함수를 이용, SQL과 연결한다.
8 ~ 12 줄 : SQL과 PHP가 연결 됬는지 확인
5번째 줄 “new“에대한 부가 설명
클래스의 인스턴스를 생성하기 위해서는 new 키워드를 사용해야 합니다.
생성자 가 정의되어 있는한 객체가 생성될것이고,
에러가 발생하면 예외를 발생시킬 것입니다.
클래스가 인스턴스화 되기 위해서는 미리 정의 되어 있어야 합니다.(필수가 되는 경우가 있습니다.)
mysqli_connect($sql_host,$sql_id,$sql_pw,$sql_db_name)
SQL연결과 사용할 DB를 선택하는 함수이다.
다만 우리가 사용할 DB는 [PHP, SQL] phpMyAdmin 글에서 user ID와 동일하게 설정했으므로
DB이름과 user ID가 같기 때문에 아래 예제에선 DB 이름을 입력하는 부분에 user ID를 넣었다.
<?php $SQL_host="localhost"; $SQL_id="php_user"; $SQL_pw="****"; $conn=mysqli_connect($SQL_host,$SQL_id,$SQL_pw,$SQL_id); if(!$conn){ echo "Selection fail"; }else{ echo "Selection Successfully"; } ?>
분석
2~3번 줄 : SQL 주소, ID, PW를 변수로 저장한다. 직접 전달해도 상관없다.
6번째 줄 : mysqli_connect()함수를 이용, SQL과 연결하고 DB를 선택한다.
8 ~ 12 줄 : DB가 선택 됬는지 확인
mysqli_query($conn, $sql)
& mysqli_fetch_assoc($result)
우선 1번째 함수는 DB가 연결된 $conn에서 $sql 쿼리문(질의문)을 전달 & 실행 하여 결과 값을 반환한다.
2번째 함수는 1번째 함수로 부터 전달 받은 $result에서 row정보를 가져오는 역할을 한다.
또한 2번째 함수를 여러번 호출하는 방법으로 row정보를 모두 가져올 수 있다.
<?php $SQL_host="localhost"; $SQL_id="php_user"; $SQL_pw="****"; $conn=mysqli_connect($SQL_host,$SQL_id,$SQL_pw,$SQL_id); $sql = "SELECT * FROM `user_info`"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); echo "<br/>".$row['user_pw']; ?>
분석
2~3번 줄 : SQL 주소, ID, PW를 변수로 저장한다. 직접 전달해도 상관없다.
6번째 줄 : mysqli_connect()함수를 이용, SQL과 연결하고 DB를 선택한다.
8번째 줄 : $sql에 SQL 쿼리문을 넣는다.
9번째 줄 : $sql에 저장된 쿼리문을 실행해 결과를 $result에 저장한다.
10번째 줄: $result에 저장된 결과의 row를 배열(?)로 반환
12번째 줄: $row[‘user_pw’]값을 출력
추가적인 공부가 필요한 듯하다.
[모르는 부분 찾기]
http://php.net/manual/kr/mysqli-result.fetch-assoc.php
http://cricri4289.blogspot.kr/2013/10/php-mysql-mysqli-mysqlifetchrow.html
http://www.w3schools.com/php/php_mysql_select.asp