После проверки всех остальных стековых потоков сообщения 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>");
}
}
Все ближе