Khi thực hiện một câu lệnh SQL, chẳng hạn như INSERT INTO table
... ON DUPLICATE CẬP NHẬT KEY ... Tôi dựa vào mysql_affected_rows() để xác định xem một chèn hoặc cập nhật được thực hiện. làm địa điểm mysql trên http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html, nó khẳng định:mysql_affected_rows() trả về -1
Đối INSERT ... Về báo cáo UPDATE KEY trùng lặp, các giá trị hàng bị ảnh hưởng là 1 nếu hàng được chèn vào như một hàng mới và 2 nếu một hàng hiện có đã cập nhật.
Tất cả đang làm việc Ok cho đến khi chúng tôi nâng cấp lên MySQL 5.1.16, khi nhiều truy vấn bây giờ đã có mysql_affected_rows() trở TRỪ MỘT (-1)
Các giải pháp đề nghị trên trang web MySQL trên http://dev.mysql.com/doc/refman/5.1/en/mysql-store-result.html là để gọi hàm mysql_store_result() sau mỗi lần thực hiện hàm mysql_query() trên một truy vấn chọn.
Tuy nhiên, PHP dường như không có chức năng được xác định.
Làm cách nào để mysql_affected_rows() hoạt động đúng cách bằng PHP và MySQL 5.1.16?
Bạn đang sử dụng câu lệnh đã chuẩn bị chưa? Nhân tiện, PHP có hàm store_result - http://php.net/manual/en/mysqli.store-result.php, nhưng store_result được gọi sau khi SELECT, không phải sau INSERT. * -1 cho biết truy vấn trả lại lỗi hoặc điều đó, đối với truy vấn SELECT, mysql_affected_rows() được gọi trước khi gọi mysql_store_result() * –
Tôi cũng có vấn đề này ... –