PHPとMySQLをもちいて入力→確認→完了→テーブルの順に表示されるデータベースをつくっています。
入力から確認まではPOSTとsessionを用いて問題なくデータが引き継がれているのですが、確認画面からPOSTで送られたデータが完了画面でMySQLに保存されていないです。
以下が該当箇所のコードです。
個人的には、完了画面の//データの追加部分が怪しいと思っているのですが具体的にどこを修正すればよいかわかりません。
色々な本やサイトを参考にしているのでつぎはぎで汚いプログラムです。
初歩的なミスであったら申し訳ございません。
ご教授いただけたらうれしいです。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 08:39
回答1件
0
ベストアンサー
INSET
そんなものはありません。
「INSERT」です。
INSERT部分もtry-catch囲ってないとエラーが捕捉出来ませんので
DB関連の処理はまとめてtry-catchしておきましょう。
php
1try { 2 $dbh =new PDO($dsn, $user, $pass); 3 //データ追加 4 $sql="INSERT INTO user_id (age,name,number) VALUES(".$age.",".$name.",".$number.")"; 5 $stmt=$dbh ->prepare($sql); 6 $stmt->execute(); 7}catch(PDOException $e){ 8 echo $e -> getMessage(); 9 exit(); 10}
あと、折角prepareしているのですから、bindValue使ってきちんとSQLインジェクション対策してください。
php
1try { 2 $dbh =new PDO($dsn, $user, $pass); 3 //データ追加 4 $sql="INSERT INTO user_id (age,name,number) VALUES(:age,:name,:number)"; 5 $stmt=$dbh ->prepare($sql); 6 $stmt->bindValue(':age', $age, PDO::PARAM_INT); 7 $stmt->bindValue(':name', $name, PDO::PARAM_STR); 8 $stmt->bindValue(':number', $number, PDO::PARAM_INT); 9 $stmt->execute(); 10}catch(PDOException $e){ 11 echo $e -> getMessage(); 12 exit(); 13}
蛇足:
テーブル名:user_id
って本当ですかね?通常はカラム名で使われるものですけど。。。
<html lang="en">
日本語で記述しているのにenって・・。
投稿2019/02/07 07:43
編集2019/02/07 07:52総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 07:50
2019/02/07 07:50
2019/02/07 08:01
2019/02/07 08:03
2019/02/07 08:11
2019/02/07 08:13
2019/02/07 08:26
2019/02/07 08:27
2019/02/07 08:28
2019/02/07 08:29
2019/02/07 09:30
2019/02/08 06:32
2019/02/08 06:37
2019/02/08 09:21
2019/02/08 09:30
2019/02/08 13:38
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。