Bạn có 3 truy vấn trong $ sql của mình, vì vậy bạn nên sử dụng hàm multi_query http:/ /php.net/manual/en/mysqli.multi-query.php
Và bạn có thể thay đổi truy vấn đầu tiên của mình thành:
SET @uid = 0;
SELECT @uid := ID FROM channels WHERE Used = 0 ORDER BY RAND() LIMIT 1);
Cập nhật Bạn có thể thử đoạn mã này đã được sửa đổi với tất cả các cải tiến đã nhận xét.
$sql = 'SET @uid = 0;';
$sql .= 'SELECT @uid:= ID FROM channels WHERE Used = 0 ORDER BY RAND() LIMIT 1);';
$sql .= 'UPDATE channels SET Used = 1 WHERE ID = @uid;';
$sql .= 'SELECT * FROM channels WHERE ID IN = @uid;';
if (mysqli_multi_query($conn, $sql)) {
do {
$result = mysqli_store_result($conn);
} while(mysqli_next_result($conn));
if (mysqli_num_rows($result) > 0) {
$text = '';
while($row = mysqli_fetch_assoc($result)) {
$Channel_Location = $row['Channel_Location'];
$text = $text . $Channel_Location;
}
}
} else {
die( mysqli_error($conn) );
}