前提・実現したいこと
phpで入力フォームを作成しています。
その中で、入力ページ、確認ページを通し、確認ページから完了ページに遷移し、完了ページ
で入力した値に問題がなければ値をデータベースに入れ、データベースに接続できなかった場合、データベースが見つからなかった場合
クエリが送信できなかった場合にエラーページに遷移してそれぞれのエラー内容が表示される様にする
機能を実装するのですが、
「データベースに接続できなかった場合、データベースが見つからなかった場合
クエリが送信できなかった場合にエラーページに遷移してそれぞれのエラー内容が表示される様にする」
部分がどうしてもどう実装すればいいのかが分かりません。
解決方法をお教え頂けないでしょうか?
該当のソースコード
PHP
1ソースコード 2 3<!DOCTYPE html> 4<html lang="ja"> 5<head> 6<meta charset="UTF-8"> 7<title>登録完了</title> 8</head> 9<body> 10<?php 11 12 $dsn = 'mysql:dbname=subject;host=localhost'; 13 $user = 'root'; 14 $password = ''; 15 16 try { 17 $pdo = new PDO($dsn, $user, $password); 18 } catch (PDOException $e) { 19 echo 'Connection failed: ' . mb_convert_encoding($e->getMessage(),'utf-8','sjis'); 20 header('Location: system_error.php'); 21 22 } 23 24 $stmt = $pdo->prepare("insert into applicant(name_1, 25 name_2, 26 name_kana_1, 27 name_kana_2, 28 birthday_year, 29 birthday_month, 30 birthday_day, 31 postalNo_1, 32 postalNo_2, 33 address_1, 34 address_2, 35 tel, 36 mail, 37 explanation_day, 38 pr, 39 question) 40 41 values(:name_1, 42 :name_2, 43 :name_kana_1, 44 :name_kana_2, 45 :birthday_year, 46 :birthday_month, 47 :birthday_day, 48 :postalNo_1, 49 :postalNo_2, 50 :address_1, 51 :address_2, 52 :tel, 53 :mail, 54 :explanation_day, 55 :pr, 56 :question)" 57 ); 58 59 60 61 $stmt -> bindvalue(':name_1',$_POST["Lname"], PDO::PARAM_STR); 62 $stmt -> bindvalue(':name_2',$_POST["Fname"], PDO::PARAM_STR); 63 $stmt -> bindvalue(':name_kana_1',$_POST["lname"], PDO::PARAM_STR); 64 $stmt -> bindvalue(':name_kana_2',$_POST["fname"], PDO::PARAM_STR); 65 $stmt -> bindvalue(':birthday_year',$_POST["Year"], PDO::PARAM_STR); 66 $stmt -> bindvalue(':birthday_month',$_POST["Month"], PDO::PARAM_STR); 67 $stmt -> bindvalue(':birthday_day',$_POST["Day"], PDO::PARAM_STR); 68 $stmt -> bindvalue(':postalNo_1',$_POST["left"], PDO::PARAM_STR); 69 $stmt -> bindvalue(':postalNo_2',$_POST["right"], PDO::PARAM_STR); 70 $stmt -> bindvalue(':address_1',$_POST["Jadd"], PDO::PARAM_STR); 71 $stmt -> bindvalue(':address_2',$_POST["addressmin"], PDO::PARAM_STR); 72 $stmt -> bindvalue(':tel',$_POST["num"], PDO::PARAM_STR); 73 $stmt -> bindvalue(':mail',$_POST["mailadd"], PDO::PARAM_STR); 74 $stmt -> bindvalue(':explanation_day',$_POST["rdo"], PDO::PARAM_STR); 75 $stmt -> bindvalue(':pr',$_POST["PR"], PDO::PARAM_STR); 76 $stmt -> bindvalue(':question',$_POST["Question"], PDO::PARAM_STR); 77 78 $stmt -> execute(); 79 80?> 81 82<h1>お申し込みありがとうございました。</h1> 83 84<a href="input_backup.php">登録画面へ</a> 85 86</body> 87</html>
試したこと
try catchで例外処理を実装しようとしましたが、それぞれのエラーメッセージをエラーページに
飛ばせませんでした。
補足情報(FW/ツールのバージョンなど)
XAMPPのバージョンは7.3.10
エディターはVSCを使用しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/01 14:29 編集
2020/04/01 15:11
2020/04/02 00:44
2020/04/02 05:30
2020/04/02 07:00
2020/04/02 07:22