Tôi đang cập nhật mã PHP từ mysql lên mysqli nhưng tôi dường như không thể tìm thấy câu trả lời cho câu hỏi này: Các truy vấn cập nhật mysqli có trả về kết quả không?Các truy vấn cập nhật mysqli có nên trả lại kết quả không?
Với mysql, tôi có thể làm
$result = mysql_query("UPDATE `data` SET `field1` = 1 WHERE `key` = '$mykey');
và kết quả $ sẽ là đúng ngay cả khi truy vấn không trả lại bất kỳ hàng.
Bây giờ, tuy nhiên, trong các mã mysqli, tôi có một cái gì đó như thế này (lỗi xử lý xóa do rõ ràng):
$stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 1 WHERE `key` = (?)")
$stmt->bind_param("s", $mykey);
$stmt->execute();
$result = $stmt->get_result();
và $ result là sai.
Để lưu bản ghi, truy vấn hợp lệ (bỏ qua bất kỳ lỗi chính tả nào tôi có thể đã sao chép nó thành stackoverflow) và trường1 được cập nhật đúng trong cơ sở dữ liệu như mong đợi. Ngoài ra, get_result() hoạt động tốt cho các truy vấn chọn lọc, vì vậy nó không phải là vấn đề get_result() không có sẵn.
Về cơ bản, tôi chỉ muốn biết liệu hành vi này có thay đổi hay không hoặc nếu tôi cố gắng tìm một số lỗi ở đâu đó.
Được rồi ... nhận xét dường như đã biến mất khiến tôi kiểm tra tài liệu, điều này thực sự khẳng định rằng get_result "trả về kết quả hoặc FALSE khi không thành công". Tôi đã đọc nó trước khi đặt câu hỏi của mình, tuy nhiên, và tôi đoán tôi chỉ tò mò nếu tài liệu là chính xác. Sau khi $ stmt-> get_result() trả về false, tôi đã kiểm tra $ stmt-> errno (là 0) và $ stmt-> error (trống) và truy vấn dường như thực thi thành công (vì cơ sở dữ liệu đã được cập nhật). Vậy lỗi này xảy ra ở đâu? – Swiftheart