Trong file PHP của tôi, tôi sử dụng dòng này để kéo dữ liệu từ cơ sở dữ liệu mySQL của tôi:
$query = "SET @rank=0; SELECT @rank:[email protected] +1 as rank, Blah Blah...";
Nếu tôi kiểm tra các câu lệnh SELECT trong cửa sổ SQL phpMyAdmin của (không có $ query =) nó hoạt động tốt.
Nhưng, nếu tôi sử dụng nó trong PHP, sau đó tôi nhận được một lỗi. Nó không giống như "SET @ rank = 0;" bit. Có cách nào để sử dụng "SET @ rank = 0;" khi nó ở trong "$ query ="? Có cách giải quyết nào không?
Phần còn lại của mã là công cụ tiêu chuẩn để kéo dữ liệu từ một db:
public function getmyData() {
$mysql = mysql_connect(connection stuff);
$query = "SELECT @rank:[email protected] +1 as rank, formatted_school_name, blah blah";
$result = mysql_query($query);
$ret = array();
while ($row = mysql_fetch_object($result)) {
$tmp = new VOmyData1();
$tmp->stuff1 = $row-> stuff1;
$tmp->stuff2 = $row->stuff2;
$ret[] = $tmp;
}
mysql_free_result($result);
return $ret;
}
Cập nhật: Tôi đang cố gắng sử dụng gợi ý của việc sử dụng đa truy vấn Amerb của. Tôi nối các truy vấn như vậy:
$query = "SET @rank = 0";
$query .= "SELECT @rank:[email protected] +1 as rank...
Tôi đã thay đổi kết quả để:
$result = $mysqli_multi_query($query);
Nhưng, nó không vì một lý do. Tôi đang sử dụng máy chạy PHP 5.2. Bất kỳ đề xuất?
Bạn đang sử dụng mã nào để chạy "truy vấn"? Đó thực sự là hai truy vấn (lưu ý dấu chấm phẩy trước 'SELECT') và ít nhất một số ràng buộc PHP MySQL không mong đợi nhiều truy vấn trong cùng một cuộc gọi. – Amber
@Amber, Hi Amber cảm ơn tin nhắn. Tôi đã thêm một số mã nữa. Đó là mã thông thường để lấy dữ liệu từ db. Tôi thấy quan điểm của bạn về ";". Có cách nào để giải quyết vấn đề đó không? Cảm ơn bạn. – Laxmidi
http://php.net/manual/en/mysqli.multi-query.php – Amber