SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 - таблица обновления - PullRequest
0 голосов
/ 23 февраля 2019

После проверки всех остальных стековых потоков сообщения Google с той же проблемой не могут найти решение.

Я использую pdo и php и пытаюсь обновить записи в таблице.Может быть проблема в другой части кода, но выглядит как проблема с MYSQL.

Здесь полное сообщение;

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
n your SQL syntax; check the manual that corresponds to your MariaDB server vers
ion for the right syntax to use near '('eggs','scrambled') WHERE (test@12.com)' at line 1<
/pre></p>

<p>My code:</p>

<p>Insert.php</p>

<pre><code>    public function newInputs(array $input_data) {

    $this->db->update('cli', 
        [
            'Food' => $input_data['newfood'],
            'Comment' =>$input_data['newcomment']

        ] ,

        [

            'email' =>$input_data['email']
        ]);


    echo "Data updated";
}
</code>

Database.php

public function update(string $table, array $data, array $where){ // array_keys(Returns all the keys of an array) $keys = array_keys($data); $placeholders = preg_filter('/^/', ':', $keys); # $email = preg_filter('/^/', ':', $data['email']); try { $query = $this->conn->prepare("UPDATE $table SET (" . implode(',', $placeholders) . ") WHERE (" . implode(',', $where) . ")"); $query->execute($data); } catch (PDOException $e) { die("<pre>" . $e->getMessage() . "</pre>"); } }

Все ближе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...