ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 39. Prepared Statement - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 14:05

    PHP Prepared Statements
     Prepared 구문은 SQL 삽입에 매우 유용한 구문입니다.



    1. Prepared Statements and Bound Parameters
     Prepared 구문은 높은 효율로 SQL 구문을 반복적으로 실행하는데 유용합니다.
     
     Prepared 구문은 아래 순서로 구동됩니다:
      1. Prepare: SQL 구문 템플릿으로 데이터베이스에 생성되고 보내집니다. 특정 값을 명시하지 않은 체 내비둡니다. (label "?")
       예: INSERT INTO MyGuests VALUES(?, ?, ?)
      
      2. 데이터베이스는 SQL 구문 템플릿을 해석, 컴파일하고 질의 최적화를 수행하고, 실행없이 결과를 저장합니다.

      3. Execute: 어플리케이션은 값을 파라미터와 연결하고, 데이터베이스는 구문을 실행합니다. 어플리케이션은 원하는 다른 값에 따라 여러 번 구문을 실행 할 수 있습니다.

     SQL 구문을 직접 실행하는 것과 비교해보면, prepared 구문은 2가지 주 장점을 가지고 있습니다:
      - Prepared 구문은 질의 준비를 단 한번 완료함으로써, 파싱 타임을 줄여줍니다.
      - 연결된 파라미터는 서버의 대역폭(bandwidth)를 줄여줍니다. 전체 질의를 보내는 것이 아닌, 필요로 할 때마다 파라미터만 보내므로.
      - Prepared 구문은 SQL 삽입에 매우 유용합니다.





    2. Prepared Statements in MySQLi
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "rhapsody3";
    $dbname = "myDB";
     
    // Create connection
    $conn = new mysqli($servername$username$password$dbname);
     
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
     
    // prepare and bind
    $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
    $stmt->bind_param("sss"$firstname$lastname$email);
     
    // set parameters and execute
    $firstname = "John";
    $lastname = "Doe";
    $email = "john@example.com";
    $stmt->execute();
     
    $firstname = "Mary";
    $lastname = "Moe";
    $email = "mary@example.com";
    $stmt->execute();
     
    $firstname = "Julie";
    $lastname = "Dooley";
    $email = "julie@example.com";
    $stmt->execute();
     
    echo "New records created successfully";
     
    $stmt->close();
    $conn->close();
    ?>
    cs

     




     

     









    * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.

    댓글

Designed by Tistory.