< div id="返信">
<フォームメソッド="POST">
<入力タイプ=" text" name="name" >
以下は挿入ステートメントです
$pdo=new PDO("mysql:host=localhost;dbname=t1","root"," ");
$stnt=$pdo->prepare("返信(reid,name,content)values(:reid,:name,:content)に挿入");
$stnt->execute ($_POST ; プロンプト ボックスは下の図の内容です。クリックして続行すると、送信したデータが再びデータベースに挿入されます。また、ブラウザを変更してページを更新すると、このボックスもプロンプトが表示されますこれが最初の質問です。
2 番目の問題は、上記のコードがデータベースにデータを挿入しておらず、生成されていないため、投稿リストからこの投稿をクリックすると、エラー メッセージが表示されることです。データを挿入するとエラーメッセージは消えますが、このページに送信された返信であるため、毎回エラーが報告されます。このような if 判定ですが、エラーは報告されませんが、データを送信した後にデータをデータベースに挿入できません。 この問題の解決方法
if(isset($_GET['reid' ])
{
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","" );
$stnt=$pdo->prepare("挿入) into Reply(reid,name,content)values(:reid,:name,:content)");
$stnt->execute( $_POST);
}
ディスカッション (解決策) への返信 1.ページでは、$_POST のコンテンツも引き継がれます。したがって、リフレッシュはフォームの繰り返し送信と同等です 2. 判断は、$_GET ではなく $_POST['reid'] を判断する必要があります
1. ページをリフレッシュすると、ページのコンテンツが$_POST はコンテンツも持ち出します。したがって、更新はフォームの繰り返しの送信と同じです
2. 判断は、$_GET ではなく、$_POST['reid'] を判断する必要があります。
2 番目の質問を変更しましたが、問題ありません。まずこの問題をどうやって解決するか?
最初の問題は、次の方法で解決できます。
実際の処理データ部分を別のファイルに置き、処理後に表示ページにリダイレクトします。
最初の問題は、次の方法で解決できます。
実際の処理データ部分を別のファイルに置き、処理後に表示ページにリダイレクトします。
挿入したデータのコード部分を別のファイルに書き込み、挿入が完了したらジャンプして戻るということですね。私が昨日尋ねた別の投稿を見てください。
http://bbs.csdn.net/topics/391903553 このコードは、送信された投稿の値を省略するために次のようになります。このページに投稿しましたが、投稿値を元に戻さなければなりません。
「その POST 値」とは何を意味しますか?データを正常に挿入した後に戻ったページにこれらの値を再度表示する必要がありますか?この場合は、前のページに戻ってレコードの ID を取得し、データベース クエリを使用してレコードを取得し、フィールドをフォームに割り当てることをお勧めします。