Переместите вызов close()
в оператор if, чтобы он вызывался только в случае успешного создания $stmt
.
// create a prepared statement
if ($stmt = $connection->prepare("select time from timetable where route=? and day=? and station=?")) {
$stmt->bind_param("sss", $route, $day, $station); // bind parameters for markers
$stmt->execute(); //execute query
$stmt->bind_result($col1); //bind result variables
while ($stmt->fetch()){
$results[]=$col1;
}
$stmt->close();//close statement
}
Я подозреваю, что на вашем локальном компьютере ошибки не включены, но на сервере, на который вы загружаете, ошибки включены.
Основная проблема, которую необходимо решить, заключается в том, что prepare()
не работает. Проблема, скорее всего, заключается в том, что в базе данных на сервере отсутствует таблица timetable
или в этой таблице отсутствует одно или несколько полей route
, day
или station
. Как сказал cbuckley, проверьте $connection->error
для полного сообщения об ошибке.
Когда вы загружали на сервер, вы не забыли также внести какие-либо изменения в структуру базы данных на сервере?