Запросы PDO работают локально, а не на сервере

0

Я выполняю запрос вставки в базу данных 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: я забыл добавить важную информацию, один и тот же запрос вставки работает в другой таблице, но он не работает в этой таблице "билетов".

Не дубликат, поскольку я пытался изменить ключевые слова на разные имена столбцов, проблема все еще сохраняется.

  • 0
    Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Теги:
pdo

1 ответ

0

Если это действительно так запутанно, почему бы не попытаться прочитать сообщение об ошибке?

<?php
    ...
    $statement = $this->pdo->prepare($query);
    /* insert this */
    if (!$statement) {
        echo "\PDO::errorInfo():\n";
        print_r($this->pdo->errorInfo());
    }
    ...
    ?>
  • 0
    `array (3) {[0] => string (5)" 00000 "[1] => NULL [2] => NULL}` - это вывод errorInfo ()
  • 0
    @Inception Вы изменили его, как показано здесь, запрашивая последнюю ошибку, прежде чем пытаться выполнить оператор? Подготовка вашего утверждения, скорее всего, и здесь не удалась, поэтому вам нужно запрашивать последнюю ошибку сразу после этого, а не после попытки ее выполнить .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню