MySQL - Chèn truy vấn

Để chèn dữ liệu vào bảng MySQL, bạn cần sử dụng SQL INSERT INTOchỉ huy. Bạn có thể chèn dữ liệu vào bảng MySQL bằng cách sử dụng lời nhắc mysql> hoặc bằng cách sử dụng bất kỳ tập lệnh nào như PHP.

Cú pháp

Đây là cú pháp SQL chung của lệnh INSERT INTO để chèn dữ liệu vào bảng MySQL -

INSERT INTO table_name ( field1, field2,...fieldN )
   VALUES
   ( value1, value2,...valueN );

Để chèn kiểu dữ liệu chuỗi, bắt buộc phải giữ tất cả các giá trị trong dấu ngoặc kép hoặc dấu nháy đơn. Ví dụ"value".

Chèn dữ liệu từ Command Prompt

Để chèn dữ liệu từ dấu nhắc lệnh, chúng ta sẽ sử dụng lệnh SQL INSERT INTO để chèn dữ liệu vào bảng hướng dẫn của MySQL.

Thí dụ

Ví dụ sau sẽ tạo 3 bản ghi thành tutorials_tbl bàn -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed

mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>

NOTE- Xin lưu ý rằng tất cả các dấu mũi tên (->) không phải là một phần của lệnh SQL. Chúng đang chỉ ra một dòng mới và chúng được tạo tự động bởi dấu nhắc MySQL trong khi nhấn phím enter mà không đưa ra dấu chấm phẩy ở cuối mỗi dòng của lệnh.

Trong ví dụ trên, chúng tôi chưa cung cấp tutorial_id vì tại thời điểm tạo bảng, chúng tôi đã cung cấp tùy chọn AUTO_INCREMENT cho trường này. Vì vậy, MySQL sẽ tự động chèn các ID này. Đây,NOW() là một hàm MySQL, trả về ngày và giờ hiện tại.

Chèn dữ liệu bằng PHP Script

Bạn có thể sử dụng cùng một lệnh SQL INSERT INTO vào hàm PHP mysql_query() để chèn dữ liệu vào bảng MySQL.

Thí dụ

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

<html>

   <head>
      <title>Add New Record in MySQL Database</title>
   </head>

   <body>
      <?php
         if(isset($_POST['add'])) {
            $dbhost = 'localhost:3036';
            $dbuser = 'root';
            $dbpass = 'rootpassword';
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }

            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')";
               mysql_select_db('TUTORIALS');
            $retval = mysql_query( $sql, $conn );
         
            if(! $retval ) {
               die('Could not enter data: ' . mysql_error());
            }
         
            echo "Entered data successfully\n";
            mysql_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>

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

Bạn có thể đặt nhiều xác nhận xung quanh để kiểm tra xem dữ liệu đã nhập có chính xác hay không và có thể thực hiện hành động thích hợp.