PHPを勉強中ですが、エラーメッセージの内容が分からなくて困っています。http://recipe.pecori.jp/yasashiiphp/index.php
上記サイトにて簡単な料理掲示板を制作しています。
解決法を教えていただけると幸いです。
////発生しているエラー////
料理の編集の画面にて編集の送信ボタンを押すとエラーメッセージが表示されて編集を更新することができません。
////エラーメッセージの内容////
エラー発生: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = 2' at line 1
////該当のソースコード////
<?php $user = '¥¥¥¥'; $pass = '¥¥¥¥''; 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=¥¥¥¥;dbname=¥¥¥¥;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) . 'レシピの更新が完了しました。<br>'; echo '<a href="index.php>トップページへ戻る</a>'; } catch (PDOException $e) { echo 'エラー発生: ' . htmlspecialchars($e->getMessage(), ENT_QUOTES) . '<br>'; exit; } ?>

回答1件
あなたの回答
tips
プレビュー