首頁  >  文章  >  後端開發  >  数据库服务

数据库服务

WBOY
WBOY原創
2016-06-23 13:31:52880瀏覽

<?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>";		//修改失败	}}?>

这个是网页代码
<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){//判断是否执行
这个判断是错误的
你只是检查了 update 命令是否有错,并没有检查到修改是否成功
mysql_affected_rows() 大于 0 才表示修改成功

没有认真看手册吧。
http://www.w3school.com.cn/php/func_mysql_query.asp

返回值

mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。

对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。



检查是否影响到了行数,应该用mysql_affected_rows()函数来检查检测。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn