Tôi đang chuyển một số mã cũ sang giao diện msqli mới bằng cách sử dụng các câu lệnh đã chuẩn bị, tôi đang gặp rắc rối với các câu lệnh SQL có chứa mệnh đề IN. Tôi sẽ chỉ bình thường làm điều này:Làm thế nào để bạn sử dụng các mệnh đề IN với các câu lệnh chuẩn bị mysqli
$ids = '123,535,345,567,878'
$sql = "SELECT * FROM table WHERE id IN ($ids)";
$res = mysql_query($sql);
Chuyển đổi này để mysqli và chuẩn bị phát biểu Tôi đã thử một số giải pháp:
$ids = '123,535,345,567,878'
$ids = implode($ids,',');
$result = $msqli->prepare("SELECT foo,blar FROM table WHERE id IN (?));
$result->bind_param("i", $ids);
$result->execute();
ở trên không và tính toán số phần tử trong mảng và làm thay đổi số lượng dấu hỏi trong chuỗi SQL và gọi bind_parm cho mỗi phần tử trong mảng cũng không thành công. Chỉ cần sử dụng chuỗi phân cách bằng dấu phẩy cũng không thành công.
Tôi không thể tìm thấy tài liệu hay về Google về vấn đề này, vì vậy bạn đã giải quyết được vấn đề như thế nào?
có thể trùng lặp của [? PreparedStatement TRÊN lựa chọn thay thế khoản] (https://stackoverflow.com/questions/178479/preparedstatement -in-khoản-lựa chọn thay thế) – bfavaretto