Insert cơ sở dữ liệu – PHP & MySQL

Insert cơ sở dữ liệu – PHP sử dụng hàm mysqli_query() để thêm mới các bản ghi trong bảng. Hàm này nhận vào ba tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại.

Cú pháp

mysqli_query ( mysqli $link, string $query, int $resultmode = MYSQLI_STORE_RESULT ) : mixed
STTMô tả thông số
1$link
Bắt buộc – Một khai báo liên kết được trả về bởi mysqli_connect () hoặc mysqli_init ().
2$query
Bắt buộc – Câu lệnh truy vấn SQL để thêm mới dữ liệu vào bảng.
3$resultmode
Tùy chọn – Hằng số MYSQLI_USE_RESULT hoặc MYSQLI_STORE_RESULT tùy thuộc vào hành động mong muốn kết quả của bạn. Theo mặc định, MYSQLI_STORE_RESULT được sử dụng.

Ví dụ Insert cơ sở dữ liệu

Ví dụ này sẽ lấy ba tham số từ người dùng và sẽ thêm chúng vào bảng MySQL

Sao chép và dán ví dụ sau vào file mysql_example.php

<html>
   <head>
      <title>Add New Record in MySQL Database</title>
   </head>
   <body>
      <?php
         if(isset($_POST['add'])) {
            $dbhost = 'localhost';
            $dbuser = 'root';
            $dbpass = 'root@123';
            $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
         
            if(! $conn ) {
               die('Could not connect: ' . mysqli_error($conn));
            }
            if(! get_magic_quotes_gpc() ) {
               $tutorial_title = addslashes ($_POST['tutorial_title']);
               $tutorial_author = addslashes ($_POST['tutorial_author']);
            } else {
               $tutorial_title = $_POST['tutorial_title'];
               $tutorial_author = $_POST['tutorial_author'];
            }
            $submission_date = $_POST['submission_date'];
            $sql = "INSERT INTO tutorials_tbl ".
               "(tutorial_title,tutorial_author, submission_date) "."VALUES ".
               "('$tutorial_title','$tutorial_author','$submission_date')";
            mysqli_select_db( $conn, 'TUTORIALS' );
            $retval = mysqli_query( $conn, $sql );
         
            if(! $retval ) {
               die('Could not enter data: ' . mysqli_error($conn));
            }
            echo "Entered data successfully\n";
            mysqli_close($conn);
         } else {
      ?>  
      <form method = "post" action = "<?php $_PHP_SELF ?>">
         <table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
            <tr>
               <td width = "250">Tutorial Title</td>
               <td><input name = "tutorial_title" type = "text" id = "tutorial_title"></td>
            </tr>         
            <tr>
               <td width = "250">Tutorial Author</td>
               <td><input name = "tutorial_author" type = "text" id = "tutorial_author"></td>
            </tr>         
            <tr>
               <td width = "250">Submission Date [   yyyy-mm-dd ]</td>
               <td><input name = "submission_date" type = "text" id = "submission_date"></td>
            </tr>      
            <tr>
               <td width = "250"> </td>
               <td></td>
            </tr>         
            <tr>
               <td width = "250"> </td>
               <td><input name = "add" type = "submit" id = "add"  value = "Add Tutorial"></td>
            </tr>
         </table>
      </form>
   <?php
      }
   ?>
   </body>
</html>

Dữ liệu đầu ra

Truy cập vào mysql_example.php được thực thi trên máy chủ web apache và kết quả đầu ra.

Entered data successfully

Trong khi thực hiện thêm dữ liệu, cách tốt nhất là bạn hãy sử dụng hàm get_magic_quotes_gpc () để kiểm tra xem cấu hình hiện tại “magic quotes” đã được thiết lập hay chưa. Nếu hàm này trả về giá trị false, thì hãy sử dụng hàm addlash() để thêm dấu gạch chéo trước dấu ngoặc kép.

Tuy nhiên, nó cũng gây không ít phiền phức cho người dùng :

  • Nếu host của bạn có bật magic quotes lên thì vấn đề đã được giải quyết, magic quotes sẽ tự tìm đến những dẫu nháy đơn/kép để vô hiệu hóa chúng.
  • Nhưng nếu host không bật magic quotes, lúc này có thể bạn sẽ không biết xác định lỗi do mình code sai hay do server không hỗ trợ …
  • Tốt nhất hãy sử dụng đoạn code sau để kiểm tra
if (get_magic_quotes_gpc()) {
    echo "enabled.";
} else {
    echo "disabled";
}

Bạn có thể thiết lập các chính sách để kiểm tra xem dữ liệu đã nhập có chính xác hay không. Để bạn thực hiện hành động thích hợp.