2014-10-14 4 views
0

Я пытаюсь обновить простой запрос, и я получаю следующее сообщение об ошибке ...PDO Update Заявление не работает

SQLSTATE [42000]: Ошибка синтаксиса или нарушение прав доступа: 1064 У вас есть ошибка в вашем SQL синтаксис; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с:: cat_name, menu_category_description =: cat_desc WHERE id =: id 'в строке 1

Запрос, который я использую, выглядит совершенно корректно. Я не знаю, почему он продолжает показывать это сообщение об ошибке.

Ниже приводится мой запрос, который я использую.

$query = "UPDATE menu_categories SET menu_category_name = :cat_name, menu_category_description = :cat_desc WHERE id = :id "; 

$stmt = $db->query($query); 
$stmt->execute([":cat_name" =>$category_name, ":cat_desc" => $category_description, ":id" => $id ]); 
+3

Да, вам необходимо подготовить запрос первого. –

ответ

1

Вы должны сначала подготовить запрос: (вы запрашивая вместо подготовки)

изменения этой линии:

$stmt = $db->query($query); 

до:

$stmt = $db->prepare($query); 

затем изменить эту строку

$stmt->execute([":cat_name" =>$category_name, ":cat_desc" => $category_description, ":id" => $id ]); 

(и снять квадратные скобки)

$stmt->execute(":cat_name" =>$category_name, ":cat_desc" => $category_description, ":id" => $id); 
+1

-jj-. Большое спасибо за ответ. Я полностью пропустил заявление о подготовке! Я изменил его, чтобы подготовиться, и он работает сейчас :) – elrado88

+0

@ elrado88 Добро пожаловать, рад, что я мог бы помочь, * приветствия * –

0

Смотрите, если это работает для вас,

$query = "UPDATE menu_categories SET menu_category_name = :cat_name, menu_category_description = :cat_desc WHERE id = :id "; 

$stmt = $db->prepare($query); 
$stmt->bindParam(':cat_name', $category_name); 
$stmt->bindParam(':cat_desc ', $category_description); 
$stmt->bindParam(':id', $id); 
$stmt->execute(); 

Кроме того, где вы определения значения для $ имя_категории, $ category_description, $ ид? Убедитесь, что они не пусты.

Вот пример Обновления PDO

Надеется, что это помогает

+1

Да, Энди, я забыл его отредактировать;) – user1149244

+0

Спасибо за ответ. Я проверил r $ category_name, $ category_description, $ id, они не пусты. Код, который вы предоставили, генерирует то же сообщение об ошибке – elrado88

+0

Я обновил свой ответ, я добавил пример о том, как обновить запись в db, используя pdo – user1149244

Смежные вопросы