Tôi đang cố gắng viết một bộ xử lý cơ sở dữ liệu PHP-MySQL có phần thông minh. Khi bộ xử lý này quyết định nó cần phải thực hiện một bản cập nhật, tôi muốn báo cáo nếu nó thực sự thành công hay không. Tôi nghĩ tôi có thể sử dụng mysql_affected_rows
...PHP, MySQL - bạn có thể phân biệt giữa các hàng phù hợp và hàng bị ảnh hưởng không?
// Example:
// After running query "UPDATE mytable SET name='Test' WHERE ID=1"
$result = mysql_affected_rows();
if ($result >= 1) { /* Success */ }
Nếu, ví dụ, không có hàng với ID = 1, sau đó $result
sẽ .
Tuy nhiên, nó chỉ ra rằng PHP mysql_affected_rows
là hàng bị ảnh hưởng thực tế, và có thể vẫn còn được nếu hàng tồn tại nhưng name
đã là "Test". (Các PHP docs thậm chí nói đây là trường hợp).
Nếu tôi chạy này trong dòng lệnh, tôi nhận được thông tin meta sau về truy vấn:
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Có cách nào cho tôi để nhận được rằng "Hàng xuất hiện" giá trị trong PHP thay vì bị ảnh hưởng hàng?
[Chỉnh sửa]: Tôi cần lưu ý rằng tôi biết tôi có thể chạy truy vấn riêng, nhưng tôi không muốn làm điều đó, vì lợi ích của hiệu suất.
Điều này thật tuyệt. Trong khi nó không cung cấp cho tôi một cách để phân biệt giữa hai (vì vậy tôi sẽ kiểm tra nó trước khi chấp nhận câu trả lời) có vẻ như tôi là điều kiện thích hợp hơn trong trường hợp của tôi. Cảm ơn! – Nicole
Tôi thích câu trả lời của anh ấy tốt hơn tôi! :) – Sev
PHP lib là một trình bao bọc trong suốt trên MySQL C api lib, bạn thực sự có thể đọc các tài liệu MySQL để hiểu rõ hơn về PHP/MySQL api – bobobobo