前提・実現したいこと
updateを使ってデータベースの内容を更新したいのですが、エラーが出てしまいます。
発生している問題・エラーメッセージ
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE id = 2' at line 1
該当のソースコード
<?php $user = 'suzuki'; $pass = 'Antaresu905'; if (empty($_GET['id'])) { echo 'IDを正しく入力してください。 '; exit; } $id = (int)$_GET['id']; $recipe_name = $_POST['recipe_name']; $howto = $_POST['howto']; $category = (int)$_POST['category']; $difficulty = (int)$_POST['difficulty']; $budget = (int)$_POST['budget']; try { $dbh = new PDO('mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'UPDATE recipes SET recipe_name = ?, category = ?, difficulty = ?, budget = ?, howto = ?, WHERE id = ?'; $stmt = $dbh->prepare($sql); $stmt->bindValue(1, $recipe_name, PDO::PARAM_STR); $stmt->bindValue(2, $category, PDO::PARAM_INT); $stmt->bindValue(3, $difficulty, PDO::PARAM_INT); $stmt->bindValue(4, $budget, PDO::PARAM_INT); $stmt->bindValue(5, $howto, PDO::PARAM_STR); $stmt->bindValue(6, $id, PDO::PARAM_INT); $stmt->execute(); $dbh = null; echo 'ID: ' . htmlspecialchars($id,ENT_QUOTES) . 'レシピの更新が完了しました。 '; } catch (PDOException $e) { echo 'エラー発生: ' . htmlspecialchars($e->getMessage(), ENT_QUOTES) . '<br>'; exit; } ?>
### 試したこと ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/21 12:05
2021/12/21 21:13