XEM MỤC LỤC CÁC BÀI VIẾT PHP
Thêm dữ liệu vào MySQL dùng MySQLi và PDO
Sau khi tạo xong cơ sở dữ liệu và bảng , chúng ta tiến hành
thêm dữ liệu vào cho chúng.
Đây là 01 vài quy tắc cú pháp phải tuân theo:
·
Câu truy vấn SQL phải nằm trong cặp dấu ngoặc
khi viết trong PHP.
·
Giá trị chuỗi bên trong câu truy vấn SQL phải nằm
trong cặp dấu ngoặc đơn.
·
Giá trị số không nằm trong cặp dấu ngoặc.
·
Từ NULL không nằm trong cặp dấu ngoặc.
Câu lệnh INSERT INTO
dùng để thêm mới các bảng ghi vào 01 bảng MySQL cú pháp như sau:
INSERT INTO tên_bảng (cột1, cột2, cột3,...)
VALUES (giá_trị1, giá_trị2, giá_trị3,...)
VALUES (giá_trị1, giá_trị2, giá_trị3,...)
Trong bài trước chúng ta tạo 01 bảng rỗng có tên
"MyGuests" có 05 cột: "id", "firstname",
"lastname", "email" và "reg_date". Bây giờ, chúng
ta sẽ điền dữ liệu vào bảng.
Ghi chú: Nếu 01 cột được thiết lập là AUTO_INCREMENT (Ví dụ như cột
"id") hoặc TIMESTAMP (Ví dụ
như cột "reg_date"), MySQL sẽ tự động thêm giá trị vào.
Các ví dụ sau thêm 01 bảng ghi mới vào bảng
"MyGuests"
Ví dụ (MySQLi hướng đối tượng)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Lỗi kết nối: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Dr', 'M', 'ntm@lophocvitinh.com')";
if ($conn->query($sql) === TRUE) {
echo "Tạo mới bảng ghi thành công!";
} else {
echo "Lỗi: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Lỗi kết nối: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Dr', 'M', 'ntm@lophocvitinh.com')";
if ($conn->query($sql) === TRUE) {
echo "Tạo mới bảng ghi thành công!";
} else {
echo "Lỗi: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Ví dụ (MySQLi thủ tục)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if (!$conn) {
die("Lỗi kết nối: " . mysqli_connect_error());
}
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if (!$conn) {
die("Lỗi kết nối: " . mysqli_connect_error());
}
mysqli_query($conn, "SET character_set_client=utf8");
mysqli_query($conn, "SET character_set_connection=utf8");
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Vi Tính', 'ntm@lophocvitinh.com')";
if (mysqli_query($conn, $sql)) {
echo "Tạo mới bảng ghi thành công!";
} else {
echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Vi Tính', 'ntm@lophocvitinh.com')";
if (mysqli_query($conn, $sql)) {
echo "Tạo mới bảng ghi thành công!";
} else {
echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
Ví dụ (PDO)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->exec("SET NAMES 'utf8';");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->exec("SET NAMES 'utf8';");
// thiết lập chế độ PDO bắt lỗi bằng
ngoại lệ
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Anh Văn', 'ntm@lophocvitinh.com')";
// dùng hàm exec() vì không có kết quả trả về
$conn->exec($sql);
echo "Tạo mới bảng ghi thành công!";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Anh Văn', 'ntm@lophocvitinh.com')";
// dùng hàm exec() vì không có kết quả trả về
$conn->exec($sql);
echo "Tạo mới bảng ghi thành công!";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Các bạn có
thể dùng đoạn mã sau để xem những gì đã thêm vào trong cơ sở dữ liệu( ta sẽ học
về câu lệnh SELECT trong các bài sau)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Lỗi kết nối: " . $conn->connect_error);
}
$conn->query("SET character_set_results=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Lỗi kết nối: " . $conn->connect_error);
}
$conn->query("SET character_set_results=utf8");
$sql = "SELECT
id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// xuất dữ liệu ra từng dòng
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 bản ghi";
}
$conn->close();
?>
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// xuất dữ liệu ra từng dòng
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 bản ghi";
}
$conn->close();
?>
Ghi
chú: để những phần
Tiếng Việt trong cơ sở dữ liệu mySQL hiển thị đúng (cả trên trình duyệt web và
phpmyadmin) thì 02 chỗ này phải đồng bộ (thiết lập giống nhau)
·
Phần
mã PHP khi thêm dữ liệu vào hay khi hiển thị, tìm kiếm
·
Thiết
lập trên phpmyadmin
Theo mình tốt
nhất là cả 02 chỗ đều thiết lập là utf8
Mã PHP là:
1.Khi thêm
vào:
"SET
character_set_client=utf8"
"SET
character_set_connection=utf8"
2.Khi hiển thị ra hay tìm
kiếm
"SET
character_set_results=utf8"
·
Hướng
đối tượng:
$conn->query("SET character_set_client=utf8");
$conn->query("SET
character_set_connection=utf8");
$conn->query("SET
character_set_results=utf8");
·
Hướng
thủ tục:
mysqli_query($conn, "SET
character_set_client=utf8");
mysqli_query($conn, "SET
character_set_connection=utf8");
mysqli_query($conn, "SET
character_set_results=utf8");
·
PDO:
chèn dòng mã sau khi tạo mới đối tượng PDO
$conn->exec("SET NAMES 'utf8';");
Nếu vẫn
chưa rõ các bạn xem them video clip sau:
XEM MỤC LỤC CÁC BÀI VIẾT PHP
By #tiensim
Nguồn: sưu tầm
Không có nhận xét nào:
Đăng nhận xét