WEB3 - PHP & MySQL

PHP와 MySQL의 연동과 SELECT

수업소개

PHP mysqli를 이용해서 SQL select 문을 실행하는 방법을 소개하는 수업입니다. 

 

 

수업준비

SQL select를 mysqli_query를 이용해서 실행하는 방법을 다룹니다. 

 

 

select.php

변경사항

<?php
$conn = mysqli_connect(
  'localhost',
  'root',
  '111111',
  'opentutorials');
$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);
var_dump($result->num_rows);

 

 

mysqli_fetch_array 사용법

mysqli_fetch_array를 이용해서 mysql 서버가 응답한 결과를 배열로 변환하는 방법을 살펴봅니다. 

 

 

select.php

변경사항

<?php
$conn = mysqli_connect(
  'localhost',
  'root',
  '111111',
  'opentutorials');
$sql = "SELECT * FROM topic WHERE id = 19";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
echo '<h1>'.$row['title'].'</h1>';
echo $row['description'];

 

 

여러 행을 가져오는 방법

 

select.php

변경사항

<?php
$conn = mysqli_connect(
  'localhost',
  'root',
  '111111',
  'opentutorials');
echo "<h1>single row</h1>";
$sql = "SELECT * FROM topic WHERE id = 19";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
echo '<h2>'.$row['title'].'</h2>';
echo $row['description'];
echo "<h1>multi row</h1>";
$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)) {
  echo '<h2>'.$row['title'].'</h2>';
  echo $row['description'];
}

 

댓글

댓글 본문
  1. 23.12.19 대입연산자, null==false 이유
  2. pmxsg
    2022.01.12. 일단 한 번 수강,
  3. chimhyangmoo
    21.06.23
  4. 감사합니다
  5. jwoh
    21-04-25
  6. jeisyoon
    2021.04.16 PHP & MySQL의 연동과 SELECT - OK
  7. hanel_
    21.2.25
  8. kkn1125
    21.01.07.목 완료~!
  9. クレヨンしんちゃん
    너무 재밌어요 ㅇㄹ
  10. 바다의왕자
    완료
  11. jaehyunlee
    05/31 고3 완료
  12. 정말 좋은 강의 잘 듣고 갑니다~감사합니다.
    근데 php와 DB정말 어려운것같아요
  13. 롤리
    첫번째 예제 실습중입니다. var_dump($result); 의 출력 값이 object(mysqli_result)#2 (0) { } 로 아무것도 없다고 뜹니다. 혹시나해서 var_dump($result->num_rows); 로 인수를 바꿧는데 이건 데이터베이스 행 갯수와 맞게 잘나옵니다...ㅡㅡ 이게 왜 이런지 알 수 있을까요?
  14. ㅇㅇ
    훌륭한 설명 감사합니다
    php만써서 그런지
    null을 false치는 것을 당연하다 생각했는데 php만의 특성이었군요
  15. 허공
    190508 감사합니다.
  16. incursio
    감사합니다.
  17. 웅이
    감사합니다 초고수시네요 ㅠㅠ
    대화보기
    • 헤헷
      웅이님) 여러값을 담아도 된다는 뜻이아니라

      egoing 님 수업을 보시면 파일이 여러개 입니다.

      각각의 파일안의 변수들

      예를들어 insert.php 안의 $sql 이랑, index.php 안의 $sql의 변수 그리고 create.php 에서 선언된 $sql이라는

      변수는 서로 다른 파일안에 들어있으므로 독립적인 변수입니다.

      독립적이라는 말은 서로의 파일에 들어있는 변수의 값에 영향을 끼칠수가 없다는 뜻입니다.

      그렇기때문에 각각의 파일들에 똑같은 변수 $sql 이라는 변수 이름을 쓴다고 하더라도 문제가 없는것이죠

      더 쉽게 설명드리자면 A라는 폴더에 '웅이' 라는 똑같은 이름을 가진 파일을 더 만들순 없지만,

      B라는 폴더, C라는 폴더 , D라는 폴더엔 똑같이 '웅이'라는 이름의 파일을 담을수가 있는 원리랑

      같다고 보시면 됩니다.

      -------------------------------------------------------------------------------------------------------------------

      웅이님이 어떠한 에디터를 이용하고 계신지 모르겠습니다만

      웅이님이 사용하고 계신 에디터는

      php 언어를 읽어들일때

      위에서 아래로 순서대로 읽어들입니다.

      $sql = "SELECT * FROM topic WHERE id = 19";
      $sql = "SELECT * FROM topic"

      라고 선언했다고 가정해봅시다.

      결과적으로 $sql 에 담긴 값은 무엇이될까요??

      $sql 은 변수선언입니다.

      말그대로 변할수 있는 값을 넣겠다고 선언한것이기 때문에

      $sql의 값은 언제든지 바뀔수 있는것입니다.

      단 앞서 말씀드렸다싶이 에디터는 위에서 아래로 순서대로 코드를 읽어들이기때문에,

      $sql 변수의 값은 $sql = "SELECT * FROM topic"이 되는겁니다. (일종의 덮어쓰기죠)


      (제가 웅이님의 질문을 보았을때 두가지중 어떠한 것에대한 질문인지 몰라 두가지 전부 답변을 달아놓았습니다.)
      대화보기
      • 웅이
        php에서는 똑같은명에 여러 값을 담아도 되는건가요?
        $sql = "SELECT * FROM topic WHERE id = 19"; 도 있고,
        $sql = "SELECT * FROM topic";도 있고, 또
        insert.php에는
        $sql= "
        INSERT INTO topic
        (title, description, created)
        VALUE(
        'MySQL',
        'MySQL is ...',
        NOW()

        )
        "; 도 있어서 헷깔리네요 ㅠㅠ
      • yamyam
        최고ㅠㅠ
      • 윤민
        사랑합니다..ㅋㅋ
      • jachie
        잘봤습니다!!
      • 쿠우반
        학원 수업 듣고있는데 초보자들이 헷갈릴만한 곳에서 짚어주지 않고 어영부영.. 넘어가는 점이 많습니다.
        배우는 사람 입장에서 생각해주시는 이고잉 선생님의 설명이 정말 도움이 됩니다^^
      • 유진희
        null을 false로 간주한다는거가 참 합리적인것 같습니다 ^^
      • sheis
        늘 수고하십니다^^
      • 제갈량
        잘 봤습니다. ^^