ホームページ  >  記事  >  バックエンド開発  >  phpリソースについて教えてください。

phpリソースについて教えてください。

WBOY
WBOYオリジナル
2016-06-23 14:02:01974ブラウズ

この投稿は xuzuning によって最終編集されました: 2014-02-20 10:40:28

php リソース

<?phpheader("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 でデータをフェッチできないのはなぜですか? SQL文としては問題ありません。
出力は


ディスカッションへの返信 (解決策)

33 行は
while($row=mysql_fetch_row($res2)){
の代わりに
while($row=mysql_fetch_row($res)){ となります。

$res2 はブール値であり、結果セットはありません

ああ、読み間違えました

しかし、$res は while($row=mysql_fetch_row($res)){ の後にすでに結果セットの末尾を指しています
あなたmysql_data_seek ($res, 1); を使用する必要があります 結果セットをラップします
ただし、ラップされていても、mysql_query($sql2,$conn) によって挿入された値は出力されないことに注意してください

ありがとうございます、チェックアウト

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