Я выполняю запрос вставки в базу данных MySQL, и запросы обрабатываются отлично на XAMPP локально, но не тогда, когда я пытаюсь использовать тот же самый код на сервере.
Вот код:
if($app['database']->insert('tickets', [
'error' => $error,
'productid' => $productid,
'counterblack' => $counterblack,
'countercolor' => $countercolor,
'time' => $time,
'date' => $date,
'active' => 1
]))
{
header("Location: ../Tasks.php");
}
else
{
echo "Error";
}
Вставить функцию:
public function insert($table, $parameters)
{
$query = sprintf('insert into %s (%s) VALUES (%s)', $table, implode(', ', array_keys($parameters)), ':' . implode(', :', array_keys($parameters)));
$statement = $this->pdo->prepare($query);
$statement->execute($parameters);
return $this->pdo->lastInsertId();
}
По какой-то причине он всегда идет в другую часть и отображает "Ошибка" при выполнении кода.
Я использовал var_dump в $this->pdo->errorInfo();
и выход:
array (3) {[0] => string (5) "00000" [1] => NULL [2] => NULL}
Схема базы данных аналогична, как я экспортировал из XAMPP и загрузил ее прямо на сервер. Что может быть здесь? Спасибо!
EDIT: я забыл добавить важную информацию, один и тот же запрос вставки работает в другой таблице, но он не работает в этой таблице "билетов".
Не дубликат, поскольку я пытался изменить ключевые слова на разные имена столбцов, проблема все еще сохраняется.
Если это действительно так запутанно, почему бы не попытаться прочитать сообщение об ошибке?
<?php
...
$statement = $this->pdo->prepare($query);
/* insert this */
if (!$statement) {
echo "\PDO::errorInfo():\n";
print_r($this->pdo->errorInfo());
}
...
?>