php でログイン インターフェイスを記述するときにエラーが発生しました。リソース ID #4
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <? session_start(); require "connect.inc.php"; if($_GET["action"]=="login"){ $UserName=$_POST["UserName"]; //从表单获取用户名 $Password=md5($_POST["Password"]); //从表单获取密码 $authority=$_POST["authority"]; //从表单获取单选框值 //若单选项值为admin,即管理员身份 if($authority=="admin"){ //sql命令 $sql="select * from admin_login where UserName='{$UserName}' and Password='{$Password}'"; $result=mysql_query($sql); //尝试输出$result,结果返回Resource id #4,是出错吗? echo $result; if(mysql_fetch_array($result)>0){ $row=mysql_fetch_assoc($result); $_SESSION["UserName"]=$UserName; $_SESSION["islogin"]=1; header("Location:index.php"); } else{ echo '<font color=red size=14px>用户名或密码错误</font>'; } ?>
//if(mysql_fetch_array($result)>0){ if (mysql_num_rows($result) > 0) { ... <br><font color="#e78608">------解決策----------------------</font><br>mysql_query() は成功した場合にリソースタイプを返します。 変数、クエリが失敗した場合は、ブール型の false を返します。 Echo は文字列の出力に使用され、出力したい変数は文字列にキャストする必要があるため、リソース ID #4<br><br>mysql_fetch_array($result) を取得します。配列またはブール値を返します。値は false です。数値と直接比較することはできません。最初に数値にキャストする必要があります。その後、似たような関数で mysql_fetch_assoc() を使用しましたが、これはエラーだらけでした<br><br>チュートリアルで教えられている場合は、できるだけ早くこのチュートリアルを諦めたほうがよいでしょう。自分で書いた場合は、まず公式マニュアルの基本事項、型に関する部分、および mysql 一連の関数の説明を読んでください <br> http://www.php.net/manual/zh/ language.types .intro .php<br>http://www.php.net/manual/zh/book.mysql.php <div class="clear"></div>