컴퓨터/PHP

PHP (2) - PHP에서 MySQL을 다뤄보자

달서비 2023. 1. 2. 17:56

데이터 베이스 - pixabay

PHP에서 MYSQL을 다뤄보자

졸업 연구에서 PHP를 서버로 사용하였습니다. 제가 PHP를 졸업 연구에서 사용했던 이유는 PHP의 가장 큰 장점은 SQL과 연동성이라고 생각합니다.  그래서 이번에는 PHP와 MySQL을 한번 연결하는 방법을 알아보겠습니다.

SQL 연결 전 초기세팅

<?PHP
$host = 'localhost';
$user = 'root';
$pw = 'password';
$dbName = 'databaseName';

$mysql = new mysqli($host, $user, $pw, $dbName);
mysqli_close($mysql); #SQL을 사용을 완료하고, 마지막에 사용한다.
?>

SQL을 연결하기 전 객체를 만들어 줘야 합니다. 각각의 객체는 host, user, pw, dbName을 가져와야 하며 SQL에서 제작한 값들을 넣어주면 됩니다. 값을 직접 넣을 수도 있지만 파일 처리를 통하여 아래의 형식처럼 넣는 것도 가능합니다. 파일을 통하여 쉽게 관리할 수 있습니다.

<?PHP
$fileRead = fopen("init.txt", 'r');

$host = fgets($fileRead);
$user = fgets($fileRead);
$pw = fgets($fileRead);
$dbName = fgets($fileRead);

fclose($fileRead);

$mysql = new mysqli($host, $user, $pw, $dbName);
mysqli_close($mysql); #SQL을 사용을 완료하고, 마지막에 사용한다.
?>

fgets 메소드를 사용하여 파일처리를 통하여 가져올 수 있습니다. fgets 메소드는 파일을 한줄씩 읽습니다. 따라서 init.txt를 제작할 때는 아래처럼 만들면 됩니다.

localhost
root
password
databaseName

============init.txt===========

 

SQL 연결 여부 확인하기

<?PHP
function testSQL() {
	global $mysql;
    
	if($mysql) {
		echo "MySQL 접속 성공"; }
	else {
		echo "MySQL 접속 실패"; }
}

$mysql = new mysqli($host, $user, $pw, $dbName);
testSQL();
mysqli_close($mysql);
?>

※쉽게 사용할 수 있도록 함수로 제작하였습니다.

객체 값의 유무에 따라 SQL 접속 결과를 출력해주는 함수입니다.  직접 MySQL객체가 있는지 확인합니다.

 

SQL 명령어 사용하기

SQL 명령어를 입력하여 직접 다룰 수 있습니다.

 

Select

<?PHP
function selectData($data) {
	global $mysql;
    
	$sql = "SELECT '$data' FROM Table;";
	$query = mysqli_query($mysql,$sql);
	$result = mysqli_fetch_row($query);
	echo $result;
	#만약 한줄만 뽑을꺼면 echo $result[0];
}
    
$mysql = new mysqli($host, $user, $pw, $dbName);
selectData($data);
mysqli_close($mysql);
?>

 

Create

<?PHP
function createData($data) {
	global $mysql;
    
	$sql = "INSERT INTO Table (column1, column2) VALUES ('$data','data');";	
	mysqli_query($mysql,$sql);
    echo "data create complete"
}
    
$mysql = new mysqli($host, $user, $pw, $dbName);
createData($data);
mysqli_close($mysql);
?>

간단하게 설명하자면 mysqli_query()SQL 명령어를 수행시키는 메소드 입니다. 또한 mysqli_fetch_row()는 SQL의 결과를 호출하는 메소드입니다.

 

마지막으로

- 해당 게시글에서 메소드 일부만 사용하였는데 정리가 잘된 다른 블로그 게시글이 있어서 링크로 공유합니다.

https://m.blog.naver.com/tkdldjs35/221942141307

 

[09] PHP 주요 내장 함수 및 MySQL 연동 함수, 여러 변수 정리

(1) php - mysql 연동 함수 정리 1. 데이터베이스 직접 접속 # mysqli_connect ("DB_ADDR"...

blog.naver.com

- PHP를 이용하여 SQL을 다룰 수 있지만 진정한 무기는 PHPMyAdmin입니다. 다음에는 해당 프로그램에 대하여 알아보겠습니다.