데이터베이스/SQL

PHP와 MariaDB 연동

haventmetyou 2023. 12. 28. 17:02
PHP와 MariaDB 기본 연동

 

  • DB 접속
<?php
   $db_host="localhost";  // 내 컴퓨터
   $db_user="root";       // MariaDB 관리자
   $db_password="1234";
   $db_name="";           // 접속할 DB
   $con=mysqli_connect($db_host, $db_user, $db_password, $db_name);
   if ( mysqli_connect_error($con) ) {
      echo "MariaDB 접속 실패", "<br>";
      echo "오류 원인 : ", mysqli_connect_error();
      exit();
   }
   echo "MariaDB 접속 성공";
     mysqli_close($con);
?>

앞으로 필요한 부분은 echo "MariaDB 접속 성공"; 이 부분 전까지이므로

$con=mysqli_connect("localhost", "root", "1234", "") or die("MariaDB 접속 실패");

위와 같이 한 행으로 줄여 코딩

실패하면 오류 메시지 출력 후 PHP 종료

 

  • 데이터베이스 생성
<?php
   $con=mysqli_connect("localhost", "root", "1234", "") or die("MariaDB 접속 실패");
   
   $sql="CREATE DATABASE sqlDB";
   $ret = mysqli_query($con, $sql);
   
   if($ret) {
      echo "sqlDB가 성공적으로 생성됨";
   }
   else {
      echo "sqlDB 생성 실패"."<br>";
      echo "실패 원인:".mysqli_error($con);
   }
   
   mysqli_close($con);
?>

이미 존재함

이후 DB 이름 변경해서 다시 생성, sqlDBp로 변경하고 다시 확인해 본 결과

  • 테이블 생성
<?php
   $con=mysqli_connect("localhost", "root", "1234", "sqlDBp") or die("MariaDB 접속 실패");
   
   $sql="
      CREATE TABLE userTbl
      ( userID        CHAR(8) NOT NULL PRIMARY KEY,
        name          VARCHAR(10) NOT NULL,
        birthYear      INT NOT NULL,
        addr           CHAR(2) NOT NULL,
        mobile1      CHAR(3),
        mobile2      CHAR(8),
        height          SMALLINT,
        mDate          DATE
      )
   ";
   
   $ret = mysqli_query($con, $sql);
   
   if($ret) {
      echo "userTBL이 성공적으로 생성됨.";
   }
   else {
      echo "userTBL 생성 실패"."<br>";
      echo "실패 원인 : ".mysqli_error($con);
   }
   
   mysqli_close($con);
?>

  • 데이터 입력
<?php
   $con=mysqli_connect("localhost", "root", "1234", "sqlDBp") or die("MariaDB 접속 실패");
   
   $sql ="
      INSERT INTO userTbl VALUES
      ('LSG', '이승기', 1987, '서울', '011', '11111111', 182, '2008-8-8'),
      ('KBS', '김범수', 1979, '경남', '011', '22222222', 173, '2012-4-4'),
      ('KKH', '김경호', 1971, '전남', '019', '33333333', 177, '2007-7-7'),
      ('JYP', '조용필', 1950, '경기', '011', '44444444', 166, '2009-4-4'),
      ('SSK', '성시경', 1979, '서울', NULL ,  NULL     , 186, '2013-12-12'),
      ('LJB', '임재범', 1963, '서울', '016', '66666666', 182, '2009-9-9'),
      ('YJS', '윤종신', 1969, '경남', NULL ,  NULL     , 170, '2005-5-5'),
      ('EJW', '은지원', 1972, '경북', '011', '88888888', 174, '2014-3-3'),
      ('JKW', '조관우', 1965, '경기', '018', '99999999', 172, '2010-10-10'),
      ('BBK', '바비킴', 1973, '서울', '010', '00000000', 176, '2013-5-5')
   ";
   
   $ret = mysqli_query($con, $sql);
   
   if($ret) {
      echo "userTBL의 데이터가 성공적으로 입력됨";
   }
   else {
      echo "userTBL 데이터 입력 실패"."<br>";
      echo "실패 원인 : ".mysqli_error($con);
   }
   
   mysqli_close($con)
?>

  • 데이터 조회
<?php
   $con=mysqli_connect("localhost", "root", "1234", "sqlDBp") or die("MariaDB 접속 실패");
   
   $sql ="
      SELECT * FROM userTBL
   ";
   
   $ret = mysqli_query($con, $sql);
   
   if($ret) {
      echo mysqli_num_rows($ret), "건이 조회됨.<br><br>";
   }
   else {
      echo "userTBL 데이터 조회 실패"."<br>";
      echo "실패 원인 : ".mysqli_error($con);
      exit();
   }
   
   while($row = mysqli_fetch_array($ret)) {
      echo $row['userID'], " ", $row['name'], " ", $row['height'], " ", "<br>";
   }
   
   mysqli_close($con);
?>