ホームページ >バックエンド開発 >PHPチュートリアル >情報を変更した後、データベース テーブルの内容が空になるのはなぜですか?
前のトピックを変更するためのコードを適用し、情報を変更するコードを作成しましたが、内容を変更して送信した後、テーブルの内容をクエリしたところ、xuehao? を除いて他の内容が空であることがわかりました。
<?php//######################学生信息修改1########################## include "config.php"; include "header.php";?> <title>修改学生信息</title><?php extract($_REQUEST); $query="update $student_table set name='$name1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query="update $student_table set sex='$sex1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query=mysql_query("update $student_table set class='$class1' where xuehao='$xuehao'"); mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query=mysql_query("update $student_table set password='$password2' where xuehao='$xuehao'"); mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query=mysql_query("update $student_table set password1='$password3' where xuehao='$xuehao'"); mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query="update $student_table set love='$love1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query="update $student_table set telephone='$telephone1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $query="update $student_table set reward='$reward1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); if($password2!=$password3) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>输入的密码不一致,请重新输入。</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"2;url=alter_student1.php\">"; exit; } if($result==true) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>修改信息成功!</big></b></font>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=index.php\">"; exit; } else { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>修改出错,请返回重新修改。</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=alter_student.php\">"; exit; } ?><?php include "foot.php";?>
なんと悲劇だ、誰も私の質問に答えてくれなかった...
print_r($_REQUES) 見てください
extract($_REQUEST);この関数を見てください。まず変数を出力して、値が空かどうかを確認します。少なくとも、フォームに間違った文字を入力した可能性が非常に高いと思います。
データベースの更新処理に無理があり、毎回名前を設定する必要がないことを示します
結果を投稿する
if($password2!=$password3)
{
echo"5f6d3ddfd4e9e7d93765368ce96da451c0025c2938efc05b97bd9beea08ca0c4a4b561c25d9afb9ac8dc4d70affff4193d49bde0e0b2e042578ad34140b6c48e入力されたパスワードは一貫していません。再入力してください。cb47d890eb8c521d3966d2b2263ef1120d36329ec37a2cc24d42c7229b69747aec1fca601d556412b20078a19c015a830cba36f12cf561cef14ffa62bcdafa2c";
echo "8f3e57efa66d8be1bb225344f5501428";
exit
}
は、次のコードの前に配置する必要があります。データを変更します
すべてのデータ変更命令は一緒にマージされる必要があります
実行中にトラブルシューティングが追加されます
php はマジック エスケープをキャンセルしました。受信したファイルの変換に注意してください自分でデータを作成
print_r($_REQUEST);
if($password2!=$password3)
{
echo"0511ef35f46864c22a06c599220d1c6f6d0dd12e125f022fab884818cfed70a6a4b561c25d9afb9ac8dc4d70affff4193d49bde0e0b2e042578ad34140b6c48e入力されたパスワードは一貫性がありません。再入力してください。 ="refresh" content="2;url=alter_student1.php">";
exit
}
である必要があります。データを変更するコードの前に配置します
すべてのデータ変更命令は一緒にマージする必要があります
トラブルシューティング
$result=mysql_query($query) または die(mysql_error());
php がマジック エスケープをキャンセルしたことに注意してください。受信データをエスケープした結果が次のようになることを確認しましたが、テーブルはまだ空です。私のコード自体に何か問題があるのでしょうか?
変数に値が割り当てられていないため
print_r($_REQUEST);
結果を投稿してください
if($password2!=$password3)
{
echo"0511ef35f46864c22a06c599220d1c6f58b731efea0270f7c107d17958c85e97a4b561c25d9afb9ac8dc4d70affff4193d49bde0e0b2e042578ad34140b6c48e入力されたパスワードは矛盾しています。再入力してください。cb47d890eb8c521d3966d2b2263ef1120d36329ec37a2cc24d42c7229b69747ae6e38b3c62e8df885fe2e3986461aa6394b3e26ee717c64999d7867364b1b4a3";
echo "07d6477b776a0423b6966ea6c5b41927";
exit;
}
データを変更するコードの前に配置する必要があります
すべてのデータ変更命令をマージする必要があります
$result=mysql_query($query) または die(mysql_error());
php がマジック エスケープをキャンセルした場合、受信データを自分でエスケープすることに注意する必要があります。変更されたステートメントは
$query="update...で、他のステートメントは
$query=mysql_query("update...です
print_r($_REQUEST);
贴出结果
if($password2!=$password3)
{
echo"090d96c3bfa50b259b93c9c82b42b219327eb1e04a43d75f4aa2f70684e695f6a4b561c25d9afb9ac8dc4d70affff4193d49bde0e0b2e042578ad34140b6c48e输入的密码不一致,请重新输入。cb47d890eb8c521d3966d2b2263ef1120d36329ec37a2cc24d42c7229b69747ae6e38b3c62e8df885fe2e3986461aa6394b3e26ee717c64999d7867364b1b4a3";
echo "e4dfc6e26ae8daab10bf26cfcc683f6d";
exit;
}
应放在修改数据的代码之前
所有的修改数据指令宜合并在一起
并在实行时加入排错
$result=mysql_query($query) or die(mysql_error());
php 已取消魔术转义,需注意自行对传入数据的转义处理 大哥,这是我重新改的代码
<?php//######################学生信息修改1########################## include "config.php"; include "header.php";?> <title>修改学生信息</title><?php extract($_REQUEST); if($password2!=$password3) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>输入的密码不一致,请重新输入。</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"2;url=alter_student1.php\">"; exit; } $query="update $student_table set name='$name1',sex='$sex1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query)or die(mysql_error()); $query=mysql_query("update $student_table set class='$class1',password='$password2',password1='$password3' where xuehao='$xuehao'"); mysql_query("set names 'GB2312'"); $result=mysql_query($query)or die(mysql_error()); $query="update $student_table set love='$love1',telephone='$telephone1', reward='$reward1' where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query)or die(mysql_error()); if($result==true) { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>修改信息成功!</big></b></font>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=index.php\">"; exit; } else { echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>修改出错,请返回重新修改。</big></b></font></p>"; echo "<meta http-equiv=\"refresh\" content=\"1;url=alter_student.php\">"; exit; } print_r($_REQUEST);?><?php include "foot.php";?>这是运行结果,如图
我yousql直接写的不会用代码
我yousql直接写的不会用代码 什么意思?
上面提示你SQL语法有错误,上面说过了,有些变量并没有extract出来,也就是你下面用来拼接SQL的变量有的是没有定义过的,也就是空值。