Я пытаюсь настроить свою базу данных, но я с грустью сталкивался с некоторыми проблемами. Я видел, что многие люди задавали один и тот же или похожий вопрос, но как бы я ни смотрел на свой код и не изменял его. Я больше смущаюсь и добавляю больше ошибок. Поэтому, если кто-то может объяснить мне, как я могу попытаться исправить это, я был бы признателен.
Вот сообщение об ошибке:
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 } ?>
в<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);
Эта ошибка возникает из-за того, что предыдущий вызов mysql_query
не создает набор результатов, а false
указывающий, что запрос не удался.
mysql_query() or die(mysql_error());
чтобы увидеть проблему. попробуйте приведенный выше код. Из кода, который вы отправили $tbl_name
, не является видимым именем переменной.
Предупреждение: mysql_ finнения устарели от 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);
Я прошел один раз …!
Пробовал все возможные способы …. не тренировка ..!
Наконец выяснилось, что в коде нет ничего плохого !! Это проблема, когда вы «импортируете» базу данных, в которой вы ранее экспортировали!
(Это будет звучать!), Но это было так …!
Проверьте свой экспортированный скрипт DB, независимо от того, содержит ли он раздел «Создать код базы данных» …. с каким-либо другим именем или с префиксом!