-1

データベースをセットアップしようとしていますが、悲しいことにいくつかの問題に遭遇しました。多くの人が同じまたは類似の質問をしているのを見てきましたが、自分のコードをどのように見て、それを修正してもかまいません。私はさらに混乱し、さらにエラーを追加します。したがって、誰かが私にそれを修正する方法を説明できれば、私はそれを感謝します.


エラーメッセージは次のとおりです。

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/folder/public_html/folder/folder/login.php on line 18

コードは次のとおりです。

<link rel="Stylesheet" type="text/css" href="style.css" />
<link href='http://fonts.googleapis.com/css?family=Karla:400,700,700italic,400italic' rel='stylesheet' type='text/css'>
<?php
$filename = 'install.php';
if (file_exists($filename)) {
echo ("<center><font color='red'><b>/install.php still exists<br>
After installing please delete install.php</center></font></b>");
} else {
if (isset($_POST['Login'])){
include('config.php');
    if (!mysql_connect($host, $username, $password)) die("Can't connect to database");
    if (!mysql_select_db($db_name)) die("Can't select database");
    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];

    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if($count >= 1){
    session_register("myusername");
    session_register("mypassword");
    header("location: index.php");
    } else {
        echo "<center><font color='red'><b>Wrong Username or Password</center></font></b>";
    }
}
?>
<br>
<form method="post" action=""><td>
<table width="325" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#212121">
<td><table width="100%" border="0" cellpadding="3" cellspacing="0" bgcolor="#404040"></td>
<tr colspan="3"><strong><center> <font color="ECECEC"> Admin Login </font></center></strong></tr>
<tr>
<td>
<font color="ECECEC">Username </font><input name="myusername" type="text" id="myusername">
<font color="ECECEC">Password </font><input name="mypassword" type="password" id="mypassword">
</td>
<center><td><input type="submit" name="Login" value="Login"></td></center>
</table></table>
</form>
<?php
}
?>

18行目はこちら

        $count=mysql_num_rows($result);
4

3 に答える 3

4

このエラーは、前回の呼び出しmysql_queryで結果セットが生成されずfalse、クエリが失敗したことを示すためです。

mysql_query() or die(mysql_error());

問題を確認します。上記のコードを試してください。投稿したコードからは$tbl_name、目に見える変数名ではありません。

于 2013-08-19T03:40:19.013 に答える
1

警告: mysql_ 関数は PHP 5.5.0 で非推奨になり、将来削除される予定です。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。

mysql_query が成功したかどうかを確認していません。クエリが失敗した場合、mysql_query は false を返します。mysql_query マニュアルを参照

試す

$result=mysql_query($sql);
if ($result==false)
{
    die(mysql_error());
}
$count=mysql_num_rows($result);
于 2013-08-19T03:40:03.327 に答える