Проблема решена.
Убрал лишнюю строку $stmt->bind_param('i', $uid);.
Это не решение проблемы, а костыль. Строка с bind_param() не лишняя. Как вам верно указал
Serge вы неверно делаете подготавливаемый запрос.
Код: Выделить всё
if ($stmt = $mysqli->prepare("SELECT `bestscore` FROM `Users` WHERE `uid` = ?")) { $stmt->bind_param('i', $viewer_id); $stmt->execute(); $stmt->bind_result($bestscore); while ($stmt->fetch()) echo $bestscore; $stmt->close();}
Видите, как. Переменная $viewer_id не передается в запросе, а привязывается через bind_param. А нужно это для того, чтобы я мог выполнить несколько запросов с разными значениями переменных. Например так:
Код: Выделить всё
$data = array(1 => 200, 2 => 300);if ($stmt = $mysqli->prepare("UPDATE `Users` SET `bestscore` = ? WHERE `uid` = ?")){ $stmt->bind_param('ii', $value, $key); foreach ($data as $key => $value) $stmt->execute(); $stmt->close();}
Для чего собственно обычно и используют подготавливаемые запросы. А для вашей задачи разумнее выполнить обычный запрос воспользовавшись query()
Код: Выделить всё
if($result = $mysqli->query("SELECT `bestscore` FROM `Users` WHERE `uid` = " . (int)$viewer_id)){ $row = $result->fetch_row(); echo $row[0];}