<?php如果在第一个while没有退出 为什么下面的$res取不出数据?SQL语句出的问题没问题。
header("Content-type: text/html; charset=utf-8");
if(!empty($_POST['username'])){
$name=$_POST['username'];
}
if(!empty($_POST['pwd'])){
$pwd=$_POST['pwd'];
}
function sqlDql($name,$pwd){
$conn=mysql_connect("localhost","root","root");
if(!$conn){
die("连接失败".mysql_error());
}
mysql_select_db("test",$conn) or die(mysql_error());
//设置字符集
mysql_query("set names utf8");
$sql="select * from zhuche;";
$res=mysql_query($sql,$conn) or die(mysql_error());
while($row=mysql_fetch_row($res)){
if($name==$row[1]){
echo "用户名已经存在<br/>";
echo "<a href='login.php'>返回注册页面</a>";
// die(mysql_free_result($res)."连接".mysql_close($conn));
mysql_free_result($res);
mysql_close($conn);
exit();
}
}
$sql2="insert into zhuche (Username,password) values ('".$name."','".$pwd."');";
$res2=mysql_query($sql2,$conn) or die(mysql_error());
echo "<table border='1px solid black'>";
echo "<tr><td>序号</td><td>用户</td><td>密码</td></tr>";
while($row=mysql_fetch_row($res)){
echo "<tr>";
foreach($row as $key=> $val){
echo "<td>--".$val."</td>";
}
echo "</tr>";
}
echo "</table>";
mysql_free_result($res);
mysql_close($conn);
}
sqlDql($name,$pwd);
?>
输出结果是
------解决方案--------------------
噢,看错了
但是 $res 经 while($row=mysql_fetch_row($res)){ 后已经指向结果集的尾部了
你需要用 mysql_data_seek($res, 1); 回绕结果集
不过请注意:即便回绕了,也不会输出 mysql_query($sql2,$conn) 插入的值