前提・実現したいこと
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 'INSERT_INTO recipes (recipe_name, category, difficulty, budget, howto) VALUES (?' at line 1```
PHP
1$recipe_name = $_POST['recipe_name']; 2$category = (int) $_POST['category']; 3$difficulty = (int) $_POST['difficulty']; 4$budget = (int) $_POST['budget']; 5$howto = $_POST['howto']; 6try { 7 $dbh = new PDO('mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass); 8 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 9 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 10 $sql = "INSERT_INTO recipes (recipe_name, category, difficulty, budget, howto) VALUES (?, ?, ?, ?, ?)"; 11 $stmt = $dbh->prepare($sql); 12 $stmt->bindValues(1, $recipe_name, PDO::PARAM_STR); 13 $stmt->bindValues(2, $category, PDO::PARAM_INT); 14 $stmt->bindValues(3, $difficulty, PDO::PARAM_INT); 15 $stmt->bindValues(4, $budget, PDO::PARAM_INT); 16 $stmt->bindValues(5, $howto, PDO::PARAM_STR); 17 $stmt->execute(); 18 $dbh = null; 19 echo "レシピの登録が完了しました。"; 20} catch (Exception $e) { 21 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 22 die(); 23}
試したこと
ソースコードに間違いがないか、教本をもとに数回見直しました。
エラー内容が、構文エラーまたはアクセス違反と出ているため、
それらについて調べてみましたが、回答結果を得られませんでした。
補足情報(FW/ツールのバージョンなど)
PHP/7.4.2
formなのでホームではなくフォームかと。
あとコードはマークダウンのcode機能を利用してご提示ください
回答2件
あなたの回答
tips
プレビュー