-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_ finctions 自 PHP 5.5.0 起已弃用,将来将被删除。相反,应该使用MySQLiPDO_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 回答
0

我经历过一次……!

尝试了所有可能的方法..没有锻炼..!

终于发现代码没有错!!当您“导入”您之前导出的数据库时,问题就出现了!

(这听起来很有线!!)但事实就是这样......!

检查您导出的数据库脚本,它是否包含创建数据库代码部分.... 使用其他名称或前缀!

于 2013-08-19T04:06:24.880 回答