我正在尝试更新一个简单的查询,并且我不断收到以下错误消息...
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 ]);
答案 0 :(得分: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 :(得分: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_name,$ category_description,$ id的值?确保它们不是空的。
以下是更新PDO
的示例$pdo = Database::getInstance();
$stmt = $pdo->db->prepare("UPDATE people SET reset='1', active=:acTive WHERE user_id=:id limit 1");
$stmt->bindParam(':acTive', $_POST['active_key']);
$stmt->bindParam(':id', $_POST['id']);
$stmt->execute();
希望有所帮助