[PHP, SQL] PHP SQL 연결

mysql vs mysqli

mysqlmysqli의 차이는 매개변수 전달 순서가 다르고 (확실하지 못함)
mysqlimysql 명령에 비해 빠르고 안전한다 정도만 알고 가자.

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정보를 모두 가져올 수 있다.

SQL_PHP_USER_INFO (2)

<?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

 

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.