ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023_09_01 MySQL&PHP 공부정리
    개발공부/MySQL 2023. 9. 2. 12:16

    https://www.youtube.com/watch?v=3tVZvEHdUMk&list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&index=7 

    [생활코딩] 6강~8강

     

    <배운것>

    https://www.php.net/manual/en/mysqli.quickstart.dual-interface.php

     

    PHP: Dual procedural and object-oriented interface - Manual

    query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");$row = $result->fetch_assoc();echo $row['_msg']; The above example will output:

    www.php.net

    -mysqli_connect를 통해 php와 mysql을 연결하는 방법을 알려주는 사이트.

    -mysqli_connect("hostname","username","password","database"); : MySQL에 접속하는 api

    ex) 

    $conn = mysqli_connect("localhost:81", "root", "11111", "opentutorials2");

    -mysqli_query($conn, $query); : 첫번째 값으로 mysqli_connect로 반환된 값을 넣고 두번째로 쿼리문을 넣음. 페이지가 리로드될때마다 $query문이 실행되어 MySQL로 전달됨. / 에러가 뜬다면 false를 반환함.

    ex)

    $sql = "INSERT INTO topic
    (title, description, created)
    VALUES(
        'MYSQL',
        'MYSQL is ...',
        NOW()
    )";
    $result=mysqli_query($conn, $sql);

     

    -mysqli_error($conn) : 에러가 발생했을때 에러를 반환함

    if($result==false){
        echo mysqli_error($conn);
    }

    *$result가 false(query가 잘못되어 fail이 됬을때)이면 mysql의 error문을 출력함.

     

    -var_dump($_POST) : POST방식으로 전달받은 데이터를 확인하는 함수

    var_dump($_POST);
    array (size=2)
      'title' => string 'dd' (length=2)
      'description' => string 'dd' (length=2)

     

    -post로 전달받은 데이터를 다음과같이 mysql의 쿼리로 변환할 수 있다.

    $sql = "INSERT INTO topic
            (title, description, created)
            VALUES(
            '{$_POST['title']}',
            '{$_POST['description']}',
            NOW()
            );
    ";

    *주의할것, ""와 {}의 문법에 주의. POST로 전달받은 데이터는 {}로 묶은다음 ''를 사용.

     

    -7강:활용-글생성 전체코드

    <?php
    $conn = mysqli_connect("localhost:81", "root", "password", "opentutorials2");
    $sql = "INSERT INTO topic
            (title, description, created)
            VALUES(
            '{$_POST['title']}',
            '{$_POST['description']}',
            NOW()
            );
    ";
    $result = mysqli_query($conn, $sql);
    if($result == false){
        echo "저장하는 과정에서 문제가 생겼읍니다.";
        error_log(mysqli_error($conn));  //에러값은 아파치 에러로그에 저장되게 하는 코드
    } else {
        echo "성공했읍니다. <a href='index.php'>돌아가기</a>";
    }
    ?>

     

    -php에서 select문으로 mysql에 데이터를 요청하면 mysqli object로 반환됨

    $conn = mysqli_connect("localhost:81", "root", "password", "opentutorials2");
    $sql = "SELECT * FROM topic LIMIT 100";
    $result = mysqli_query($conn, $sql);
    var_dump($result);
    object(mysqli_result)[2]
      public 'current_field' => int 0
      public 'field_count' => int 4
      public 'lengths' => null
      public 'num_rows' => int 4
      public 'type' => int 0

    *LIMINT number는 가져올 데이터의 양을 제한하는 명령어

    *$result->num_rows로 입력하면 int(4)만 출력함.

     

    -mysqli_fetch_array($result) : mysqli_query로 가져온 데이터를 넣으면 테이블 안의 데이터를 행단위로 출력함

    $row = mysqli_fetch_array($result);

     

    -컬럼의 이름을 통해 데이터를 가져오는것 : 연관배열

    -숫자를 통해 데이터를 가져오는것 : 배열     

    print_r(mysqli_fetch_array($result ));

    Array ( [0] => 8 [id] => 8 [1] => MySQL [title] => MySQL [2] => MySQL is ... [description] => MySQL is ... [3] => 2023-09-02 09:20:15 [created] => 2023-09-02 09:20:15 )

    *[0] => 8 이 배열, [id] => 8이 연관배열

     

    - 8강 SELECT 사용법 전체코드

    <?php
    $conn = mysqli_connect("localhost:81", "root", "password", "opentutorials2");
    echo '<h1>single row</h1>';
    $sql = "SELECT * FROM topic WHERE id=8 LIMIT 100";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_array($result);
    echo '<h2>'.$row['title'].'</h2>';
    echo $row['description'];

    echo '<h1>multi row</h1>'; //mysqli_fetch_array는 한번에 한 행만 출력해서보여줌 따라서 다음과같이 여러번입력하면 순서대로 행을 출력함
    $sql = "SELECT * FROM topic LIMIT 100";
    $result = mysqli_query($conn, $sql);

    while($row = mysqli_fetch_array($result)){
        echo '<h2>'.$row['title'].'</h2>';
        echo $row['description'];
    }

    ?>
     

     

    '개발공부 > MySQL' 카테고리의 다른 글

    2023_09_03 MySQL&PHP 공부정리  (0) 2023.09.04
    2023_09_02 MySQL&PHP 공부정리  (0) 2023.09.03
    2023_08_31 MySQL&PHP 공부정리  (0) 2023.08.31
    2023_08_31 MySQL 공부정리  (0) 2023.08.31
    2023_08_30 MySQL 공부정리  (0) 2023.08.30
Designed by Tistory.