ホームページ  >  記事  >  バックエンド開発  >  データベースサービス

データベースサービス

WBOY
WBOYオリジナル
2016-06-23 13:31:52841ブラウズ

<?php header("content-type:text/html;charset=utf-8");	 	//编码include("conn/conn.php");							//链接数据库if(isset($_POST['xiugai'])){		//判断有没有修改按钮	$user=$_POST['user'];	        //定义用户名变量	$pwd=$_POST['pwd'];				//原密码变量	$xpwd=$_POST['xpwd'];					//新密码变量	$section=$_POST['section'];			//部门名称变量	$name=$_POST['name'];				//真实姓名变量	$insert=mysql_query("update tb_login set pwd='$xpwd',section='$section',name='$name' where user='$user' and pwd='$pwd'",$conn);		//更新数据库语句	echo mysql_error();	if($insert){//判断是否执行	echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';		echo "<script>alert('?修改成功');window.location.href='index.php'</script>";			//修改成功	}	else{	echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';		echo "<script>alert('?修改失败');window.location.href='guanli.php'</script>";		//修改失败	}}?>

これは Web ページのコードです
<form action="guanli_ok.php" method="post" enctype="multipart/form-data" name="form2" id="form2">      <table width="527" height="282" border="0" cellpadding="0" cellspacing="0">        <tr>          <td width="194" height="46"><div align="left"><?php echo $_SESSION['user'];?> 用户信息修改</div></td>          <td width="333"><div align="left"></div></td>        </tr>         <tr>          <td height="46"><div align="right">用户名:</div></td>          <td><div align="left"><input type="text" name="user" readonly="readonly" value="<?php echo $_SESSION['user'];?>"/></div></td>        </tr>        <tr>          <td height="40"><div align="right">原密码:</div></td>          <td><div align="left"><input type="text" name="pwd" /></div></td>        </tr>        <tr>          <td height="30"><div align="right">新密码:</div></td>          <td><div align="left"><input type="text" name="xpwd" /></div></td>        </tr>        <tr>          <td height="30"><div align="right">确认密码:</div></td>          <td><div align="left"><input type="text" name"quren" /></div></td>        </tr>        <tr>          <td height="30"><div align="right">部门:</div></td>          <td><div align="left"><input type="text" name="section" /></div></td>        </tr>        <tr>          <td height="30"><div align="right">真实姓名:</div></td>          <td><div align="left"><input type="text" name="name" /></div></td>        </tr>        <tr>          <td height="30"> </td>          <td><input type="submit" name="xiugai" value="确认修改"/> </td>        </tr>      </table>    </form>


問題は、元のパスワードが間違って入力されたとしても、最終的には正常に変更され、index.php ページにジャンプしましたが、データベースは変更されなかったことです。元のパスワードが正しければすべて正常です

返信 ディスカッション (解決策)
if($insert){// 実行するかどうかを決定します

この判断は間違っています

更新コマンドが正しいかどうかを確認しただけです。変更が成功したかどうかを確認しませんでした

Mysql_affected_rows() は 0 より大きいことを意味します 変更は成功しました

マニュアルを注意深く読んでいない可能性があります。
http://www.w3school.com.cn/php/func_mysql_query.asp


戻り値

mysql_query() は、クエリが正しく実行されなかった場合、SELECT、SHOW、EXPLAIN、または DESCRIBE ステートメントのリソース識別子のみを返します。間違い。


他のタイプの SQL ステートメントの場合、mysql_query() は正常に実行された場合は TRUE を返し、エラーが発生した場合は FALSE を返します。

FALSE 以外の戻り値は、クエリが有効であり、サーバーによって実行できることを意味します。これは、影響を受ける行数または返される行数については何も示しません。クエリが正常に実行されたものの、行に影響を与えなかったり、行が返されなかったりする可能性があります。


行数が影響を受けるかどうかを確認するには、mysql_affected_rows() 関数を使用して確認する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。