Trong bài này ta sẽ tìm hiểu đến thao tác cuối cùng thường hay sử dụng trong MySQL lẫn PHP đó là cập nhật dữ liệu, đây là thao tác được dùng trong backend dùng để sửa thông tin sản phẩm, tin tức, chuyên mục, …

Cú pháp của lệnh update như sau:

1
2
3
UPDATE table_name
SET column1 = value1, column2 = value2,...
WHERE some_column = some_value

Tương tự như trường hợp delete bạn phải truyền điều kiện update vào nếu không nó sẽ cập nhật cho toàn bộ records có trong table. Thông thường thì chúng ta lấy điều kiện theo khóa chính.

Nội dung chính

  • 1. Update dữ liệu với MySQLi
    • Sử dụng MySQLi Object-oriented:
    • Sử dụng MySQLi Procedural:
  • 2. Update dữ liệu với PDO
  • 3. Lời kết

1. Update dữ liệu với MySQLi

Tương tự như các thao tác trước chúng ta sẽ có hai trường hợp sử dụng.

Sử dụng MySQLi Object-oriented:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Kết nối CSDL
$conn = new mysqli('localhost', 'root', 'vertrigo', 'FreetutsDemo');
// Kiểm tra kết nối
if ($conn->connect_error) {
    die("Kết nối thất bại: " . $conn->connect_error);
}
// Lệnh update
$sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
// Thực hiện update
if ($conn->query($sql) === TRUE) {
    echo "update thành công";
} else {
    echo "Update thất bại: " . $conn->error;
}
// ngắt kết nối
$conn->close();

Sử dụng MySQLi Procedural:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Kết nối CSDL
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'FreetutsDemo');
// Kiểm tra kết nối
if (!$conn) {
    die("Kết nối thất bại: " . mysqli_connect_error());
}
// Lệnh update
$sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
// Thực hiện update
if (mysqli_query($conn, $sql)) {
    echo "update thành công";
} else {
    echo "Update thất bại: " . mysqli_error($conn);
}
// ngắt kết nối
mysqli_close($conn);

2. Update dữ liệu với PDO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
try {
    // Kết nối
    $conn = new PDO("mysql:host=localhost;dbname=FreetutsDemo", 'root', 'vertrigo');
    // Thiết lập Exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // Câu SQL
    $sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
    // Prepared câu SQL
    $stmt = $conn->prepare($sql);
    // Thực thi câu SQL
    $stmt->execute();
    // Xuất kết quả tổng số record đã update
    echo $stmt->rowCount() . " records thành công";
}
catch (PDOException $e) {
    echo 'Lỗi'. "<br>" . $e->getMessage();
}
// Ngắt kết nối
$conn = null;

3. Lời kết

Các ví dụ trên chỉ demo cho các bạn nên mình không sử dụng prepared nên nếu bạn làm trong project thì nên sử dụng prepared đẻ truyền các giá trị vào các field cũng như ở trong điều kiện update nhé.

Bài này tới đây cũng gần như là bạn đã có đủ kiến thức để sử dụng PHP thao tác với CSDL MySQL rồi đấy, vì vậy mình sẽ tạm thời ngưng series này tại đây. Cám ơn các bạn đã theo dõi.

——————-#####——————-

15 BÌNH LUẬN

  1. When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a
    comment is added I get three e-mails with the same comment.
    Is there any way you can remove me from that service?
    Thanks!

  2. You actually make it appear so easy with your presentation but I find this topic to be actually something which I feel I’d by no means understand.
    It seems too complicated and very huge for me. I am taking a look forward on your
    next publish, I’ll attempt to get the cling of it!

  3. Simply wish to say your article is as astonishing. The clearness in your post is simply spectacular
    and i could assume you are an expert on this subject. Well with your permission allow me to grab your feed to keep updated with forthcoming
    post. Thanks a million and please carry on the rewarding work.

  4. Excellent post. I was checking continuously this weblog and I’m impressed!
    Very useful info particularly the final section 🙂 I deal with such info much.

    I was looking for this particular information for a very long time.
    Thank you and best of luck.

  5. Have you ever thought about including a little bit more than just your articles?
    I mean, what you say is fundamental and everything. But just
    imagine if you added some great photos or videos to give
    your posts more, “pop”! Your content is excellent but with pics and clips,
    this site could definitely be one of the most beneficial in its niche.
    Excellent blog!

  6. I do nott even know how I ended up here, but I thought
    this post was great. I don’t know who you are but certainly you’re going to
    a famous bloggerr if you are not already 😉 Cheers!

  7. Hello, i think that i saw you visited my weblog so i came to “return the
    favor”.I am trying to find things to enhance my website!I suppose its ok to
    use some of your ideas!!

  8. Good day! I know this is kinda off topic however , I’d figured I’d ask.
    Would you be interested in exchanging links or maybe guest authoring a blog post or vice-versa?
    My blog addresses a lot of the same subjects as yours and I
    think we could greatly benefit from each other. If you are interested feel free to shoot me an e-mail.
    I look forward to hearing from you! Awesome blog by the way!

  9. Wonderful article! This is the type of info that are meant to be shared around the web.
    Shame on Google for no longer positioning this post upper!
    Come on over and discuss with my web site . Thanks =)

  10. I am now not sure the place you are getting your info, but good topic.
    I needs to spend some time finding out more or working out more.
    Thank you for magnificent info I used to be on the lookout for
    this info for my mission.

  11. Thank you for the good writeup. It in truth was once a amusement account it.
    Look advanced to more brought agreeable from you!
    However, how could we keep in touch?

  12. Hi! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my blog
    to rank for some targeted keywords but I’m not seeing very good success.
    If you know of any please share. Cheers!

THOÁT KHỎI BÌNH LUẬN

Please enter your comment!
Please enter your name here