Я просмотрел этот скрипт как 30 раз, и я не могу для меня найти свою проблему. Вот код:
function redeem() { $case = $_POST["case"]; $name = $_POST["name"]; $profession = $_POST["profession"]; $city = $_POST["city"]; $country = $_POST["country"]; $totalpercent = $_POST["totalpercent"]; $pretest = $_POST["pretest"]; $posttest = $_POST["posttest"]; $investigationspercent = $_POST["investigationspercent"]; $timesreset = $_POST["timesreset"]; $creditsspent = $_POST["creditsspent"]; $timescompleted = $_POST["timescompleted"]; //Add the information to the learnent_cases_leaderboard table $stmt = $this->db->prepare("INSERT INTO learnent_cases_leaderboard (case, name, profession, city, country, totalpercent, pretest, posttest, investigationspercent, creditsspent, timescompleted, timesreset, timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)"); $stmt->bind_param("sssssiiiiiii", $case, $name, $profession, $city, $country, $totalpercent, $pretest, $posttest, $investigationspercent, $creditsspent, $timescompleted, $timesreset); //the quotations specify the type of variable; //See http://php.net/manual/en/mysqli-stmt.bind-param.php for more information on bind_param $stmt->execute(); $stmt->close();
Когда я смотрю на журнал ошибок, он дает мне это сообщение об ошибке:
Строка 105 – это строка:
PHP Неустранимая ошибка: вызов функции-члена bind_param () для не-объекта в строке 105
Код:
$stmt->bind_param("sssssiiiiiii", $case, $name, $profession, $city, $country, $totalpercent, $pretest, $posttest, $investigationspercent, $creditsspent, $timescompleted, $timesreset);
Вы никогда не проверяли, что $stmt
является объектом. В этом случае, скорее всего, будет FALSE
, и это то, что PDO::prepare
возвращает, когда в вашем запросе есть ошибка.
И ваш запрос имеет ошибку в нем, потому что вы не ограничивали имена полей в backticks, а timestamp
– это ключевое слово.
Проверьте наличие ошибок после вызова функций из сторонних API и исправьте свой запрос.
Первый из; всегда запускайте свои запросы в локальном хосте, чтобы убедиться, что ваш запрос выполняется без ошибок. Затем всегда удостоверьтесь, что имена полей и типов данных соответствуют тому, что у вас есть в коде.