ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PHP와 MariaDB 연동
    데이터베이스/SQL 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);
    ?>

    '데이터베이스 > SQL' 카테고리의 다른 글

    트리거  (0) 2024.01.25
    회원 관리 시스템  (0) 2023.12.29
    PHP 기본 문법  (0) 2023.12.28
    MariaDB 생성 및 Query Practice  (0) 2023.12.21
    XAMPP 설치  (0) 2023.12.14
Designed by Tistory.