前に書き込んだのが状況がわかったので再度書きます
update.phpでGETで取った番号のデータを表示します
番号は主キーなので変更できないように表示のみにします
update.phpのフォームをuptate2.phpに送ります
<?php
$ID = htmlspecialchars($_GET['番号']);
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$st = $pdo->prepare("SELECT * FROM tbl_test WHERE 番号=?");
$st->execute(array($ID));
$row = $st->fetch();
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
?>
<form action="update2.php" method="post">
番号<br> <?php echo $ID ?><br>
<input type="hidden" name="ID" value="<?php echo $ID; ?>">
氏名<br>
<input type="text" SIZE = "50" NAME="NAME" value="<?php echo $NAME ?>"><br>
住所<br>
<input type="text" SIZE = "130"NAME="ADDR" value="<?php echo $ADDR ?>"><br>
<input type="submit">
</form>
アップデ-トphp
update2.php
<?php
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?");
$st->execute(array($_POST['ID'],$_POST['NAME'], $_POST['ADDR']));
?>
レコードを修正しました。
今の現状
エラーが出ないでレコードを修正しました。と表示されるがレコードが修正されていない
どこがいけないと思いますか?
No.3ベストアンサー
- 回答日時:
No.4
- 回答日時:
> ここから氏名と住所が空白だったらエラーメッセージを出したいのでがtryで出せばいいですか
try~catchは例外が発生した場合に、エラーを補足するために使用します。
未入力などのエラーチェック機構は自分で実装する必要があります。
※以下は簡易例です。
update2.php
<?php
$err = "";
if(empty($_POST['NAME'])) $err.= "名前を入力してください。<br>";
if(empty($_POST['ADDR'])) $err.= "住所を入力してください。<br>";
if(empty($err)){
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?");
$st->execute(array($_POST['NAME'], $_POST['ADDR'],$_POST['ID']));
}else{
echo $err;
}
?>
ありがとうございます
未入力だと
住所を入力してくだざい
レコードを修正しましたと表示されます
<html>
<body>
<blockquote>
<?php
$err = "";
if(empty($_POST['NAME'])) $err.= "名前を入力してください。<br>";
if(empty($_POST['ADDR'])) $err.= "住所を入力してください。<br>";
if(empty($err)){
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?");
$st->execute(array($_POST['NAME'], $_POST['ADDR'],$_POST['ID']));
}else{
echo $err;
}
?>
<br>
レコードを修正しました
<br><br><br> <a href="http://localhost/top.php">
<input type = "submit" value = "一覧に戻る" style ="WIDTH: 150px; HEIGHT: 40px"></A>
</blockquote>
</body>
</html>
どこにレコード修正しましたを入れれば直したときだけ出ますか?
No.2
- 回答日時:
> $st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?");
そのままコピペしているのでしたら、「住所=?」と「WHERE」の間はスペースを空けないとだめですね。
> $st->execute(array($_POST['ID'],$_POST['NAME'], $_POST['ADDR']));
それと、バインドする値の順序が違うような・・・
$st->execute(array($_POST['NAME'], $_POST['ADDR'], $_POST['ID']));
明確にするなら、プレースホルダとbindValue()などを使う方がいいと思います。
$st = $pdo->prepare("UPDATE tbl_test SET 氏名 = :name, 住所 = :addr WHERE 番号 = :id");
$st->bindValue(':name', $_POST['NAME']);
$st->bindValue(':addr', $_POST['ADDR']);
$st->bindValue(':id', $_POST['ID']);
$st->execute();
そもそも、エラーを補足できるように、try~catchを使う方がいいです。
try{
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$st = $pdo->prepare("UPDATE tbl_test SET 氏名 = :name, 住所 = :addr WHERE 番号 = :id");
$st->bindValue(':name', $_POST['NAME']);
$st->bindValue(':addr', $_POST['ADDR']);
$st->bindValue(':id', $_POST['ID']);
$st->execute();
}catch(PDOException $e){
echo $e->getMessage();
exit;
}
ありがとうございます
順序が違ってました。
ここから氏名と住所が空白だったらエラーメッセージを出したいのでがtryで出せばいいですか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php で C言語のdefineマクロの...
-
phpのswitch文のcaseで
-
phpヒアドキュメントスクリプト...
-
特定の値をPOST送信で他のサー...
-
さくらレンタルサーバーでのMag...
-
PHPのif文でその処理を途中で抜...
-
PHPでFilename cannot be empty...
-
FTPコマンドでディレクトリごと...
-
VBSの「MsgBox」について
-
「@$変数」の「@の意味は?」
-
DLL のロードの順序
-
フォントの色を変えるには?
-
ftpでアップロードが出来ない
-
【file_exists】ファイルが存在...
-
CSV出力にHTMLが入ってしまう
-
レジストリにあるアプリケーシ...
-
PHPでCSVファイルの任意の行だ...
-
「クラウドにアップロード」」...
-
トランザクションが原因?DBに...
-
PHPExcelバッファへの書き込み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのタイムアウトについて
-
php で C言語のdefineマクロの...
-
「include」と「file_get_conte...
-
cakephpのサブタイトルはどこで...
-
phpでハイパーリンクして値を持...
-
同じような処理を一つにまとめたい
-
PHPでxmlファイルへのデータの...
-
htsp ?? <?= ?>??
-
BASIC認証のユーザー名をPHPで...
-
PHP+MySQLでXMLを作成し、それ...
-
phpのswitch文のcaseで
-
php4からphp5へ移行した際のurl...
-
PHPで、GET または POST で得ら...
-
phpのXSS対策 どこに問題が?
-
phpでcssを使う荒業
-
foreachの使い方
-
DOMでXML操作
-
PEARのHTTP_Requestをインストール
-
echoを使用すると、エラー
-
検索結果を2列で表示させたい
おすすめ情報