ホームページ > バックエンド開発 > PHPチュートリアル > 情報を変更した後、データベース テーブルの内容が空になるのはなぜですか?

情報を変更した後、データベース テーブルの内容が空になるのはなぜですか?

WBOY
リリース: 2016-06-23 14:10:09
オリジナル
1170 人が閲覧しました

前のトピックを変更するためのコードを適用し、情報を変更するコードを作成しましたが、内容を変更して送信した後、テーブルの内容をクエリしたところ、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);この関数を見てください。まず変数を出力して、値が空かどうかを確認します。少なくとも、フォームに間違った文字を入力した可能性が非常に高いと思います。

データベースの更新処理に無理があり、毎回名前を設定する必要がないことを示します

print_r($_REQUEST);

結果を投稿する

if($password2!=$password3)
{
echo"< p align=" center">入力されたパスワードは一貫していません。再入力してください。< /font>";
echo "";
exit
}
は、次のコードの前に配置する必要があります。データを変更します

すべてのデータ変更命令は一緒にマージされる必要があります
実行中にトラブルシューティングが追加されます

php はマジック エスケープをキャンセルしました。受信したファイルの変換に注意してください自分でデータを作成


print_r($_REQUEST);

結果を投稿


if($password2!=$password3)
{
echo"

入力されたパスワードは一貫性がありません。再入力してください。 ="refresh" content="2;url=alter_student1.php">";
exit
}
である必要があります。データを変更するコードの前に配置します

すべてのデータ変更命令は一緒にマージする必要があります
トラブルシューティング
$result=mysql_query($query) または die(mysql_error());

php がマジック エスケープをキャンセルしたことに注意してください。受信データをエスケープした結果が次のようになることを確認しましたが、テーブルはまだ空です。私のコード自体に何か問題があるのでしょうか?

変数に値が割り当てられていないため

変数に値が割り当てられていないため、値を割り当てる場所と方法を教えてください。私は初心者です...

print_r($_REQUEST);

結果を投稿してください

if($password2!=$password3)
{
echo"

入力されたパスワードは矛盾しています。再入力してください。

";
echo "";
exit;
}
データを変更するコードの前に配置する必要があります
すべてのデータ変更命令をマージする必要があります
$result=mysql_query($query) または die(mysql_error());

php がマジック エスケープをキャンセルした場合、受信データを自分でエスケープすることに注意する必要があります。変更されたステートメントは
$query="update...
ログイン後にコピー
で、他のステートメントは
$query=mysql_query("update...
ログイン後にコピー
です

$name1=$_post('name in the form')
どのようなパラメータを取得したかわかりません



print_r($_REQUEST);
贴出结果

if($password2!=$password3)
{
echo"

输入的密码不一致,请重新输入。

";
echo "";
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的变量有的是没有定义过的,也就是空值。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート