AZCode.vn AZCode

Truy vấn INSERT trong MySQL

Để chèn dữ liệu vào trong bảng MySQL, bạn sẽ cần sử dụng lệnh SQL là INSERT INTO.

Cú pháp

Cú pháp SQL cơ bản của lệnh INSERT INTO để chèn dữ liệu vào trong bảng MySQL là:

INSERT INTO ten_bang ( truong1, truong2,...truongN )
                       VALUES
                       ( giatri1, giatri2,...giatriN );

Để chèn kiểu dữ liệu chuỗi, điều bắt buộc là bạn phải giữ tất cả giá trị trong các trích dẫn đơn hoặc trích dẫn kép, ví dụ: "giatri".

Ví dụ chèn dữ liệu vào bảng trong MySQL

Dưới đây là ví dụ minh họa việc sử dụng lệnh INSERT INTO để chèn dữ liệu vào trong bảng. Trong các chương trước, chúng ta đã tạo bảng sinhvienk60, bây giờ chúng ta chèn các bản ghi như sau:

INSERT INTO sinhvienk60 (ho, ten, diemthi)
VALUES ("Dinh Van", "Cao", 8);

INSERT INTO sinhvienk60 (ho, ten, diemthi)
VALUES ("Nguyen Van", "Thanh", 9);

INSERT INTO sinhvienk60 (ho, ten, diemthi)
VALUES ("Nguyen Hoang", "Manh", 7.5);

INSERT INTO sinhvienk60 (ho, ten, diemthi)
VALUES ("Tran Van", "Nam", 10);

Trong ví dụ trên, mình đã không cung cấp mssv bởi vì tại thời điểm tạo bảng này, mình đã cung cấp tùy chọn AUTO_INCREMENT cho trường này. Vì thế, MySQL sẽ xử lý việc chèn các mssv của nó một cách tự động.

Bây giờ, nếu bạn sử dụng lệnh SELECT (sẽ được học ở chương tiếp theo) với bảng trên như sau:

SELECT * FROM sinhvienk60;

Kết quả nhận được sẽ như sau:

Truy vấn INSERT trong MySQL

Chèn dữ liệu vào bảng bởi sử dụng PHP Script

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

Ví dụ

Ví dụ này sẽ nhận 4 tham số từ người dùng và sau đó sẽ chèn chúng vào trong bảng MySQL.

<html>
<head>
<title>Chen du lieu vao bang trong MySQL</title>
</head>
<body>
<?php
if(isset($_POST['add']))
{
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Khong the ket noi: ' . mysql_error());
}

if(! get_magic_quotes_gpc() )
{
   $ho = addslashes ($_POST['ho']);
   $ten = addslashes ($_POST['ten']);
}
else
{
   $ho = $_POST['ho'];
   $ten = $_POST['ten'];
}
$diemthi = $_POST['diemthi'];

$sql = "INSERT INTO sinhvienk60 ".
       "(ho, ten, diemthi) ".
       "VALUES ".
       "('$ho','$ten','$diemthi')";
mysql_select_db('sinhvien');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Khong the nhap du lieu: ' . mysql_error());
}
echo "Nhap du lieu thanh cong\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">Ho</td>
<td>
<input name="ho" type="text" id="ho">
</td>
</tr>
<tr>
<td width="250">Ten</td>
<td>
<input name="ten" type="text" id="ten">
</td>
</tr>
<tr>
<td width="250">Diem Thi</td>
<td>
<input name="diemthi" type="float" id="diemthi">
</td>
</tr>
<tr>
<td width="250"> </td>
<td> </td>
</tr>
<tr>
<td width="250"> </td>
<td>
<input name="add" type="submit" id="add" values="Them ban ghi">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>

Sao chép code trên trong một trình soạn thảo chẳng hạn, lưu là insert.php, bạn cần xác định các tham số $dbuser và $dbpass thích hợp (tùy theo cách bạn đã thiết lập với MySQL), sau đó, mở trình duyệt, chạy locallhost/insert.php sẽ cho kết quả như sau:

Truy vấn INSERT trong MySQL

Trong khi thực hiện việc chèn dữ liệu, việc sử dụng hàm get_magic_quotes_gpc() để kiểm tra xem cấu hình hiện tại có được thiết lập cho magic quote hay không là một bước thực hành tốt. Nếu hàm này trả về false, thì sử dụng hàm addslashes() để thêm dấu gạch chéo trước các trích dẫn.

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

Các bài học MySQL phổ biến khác tại AZCode: