php mysql登录表单
好的,我正在尝试构建一个快速而肮脏的登录表单,但我不断收到一个php错误“警告:mysql_num_rows()期望参数1是资源,在中给出null” 我试着四处看看,但似乎没有任何帮助或工作php mysql登录表单,php,mysql,Php,Mysql,好的,我正在尝试构建一个快速而肮脏的登录表单,但我不断收到一个php错误“警告:mysql_num_rows()期望参数1是资源,在中给出null” 我试着四处看看,但似乎没有任何帮助或工作 <?php $user = 'root'; //Database username ("Root for xampp") $pass = ''; //Database password ("empty for exampp") $db = 'd
<?php
$user = 'root'; //Database username ("Root for xampp")
$pass = ''; //Database password ("empty for exampp")
$db = 'dragondrivingschooldb'; //Name of database
$con = new mysqli('localhost', $user, $pass, $db) or die("Unable to connect"); //Create new data connection ('name of host/server', user, password, database name)
if(isset($_POST['txtusername']))
{
$username = $_POST['txtusername'];
$password = $_POST['txtpassword'];
$SQL = mysqli_query($con, "SELECT * FROM users WHERE username=' " . $username ." ' AND password= ' " . $password . " ' LIMIT 1 ");
$result = mysqli_fetch_array($SQL);
if (mysql_num_rows($result) == 1)
{
echo "Hello World";
}
else
{
echo "no";
}
}
mysqli_close($con);
?>
<!DOCTYPE html>
<form method="post" action="Login.php">
username: <input type="text" name="txtusername"><br>
password: <input type="text" name="txtpassword"> <br>
<input type="submit" name="submit" value="Login" >
</form>
</html>
您正在尝试对结果数组(!)使用mysql\u num\u rows()函数。mysql_num_rows需要sql资源,而不是mysqli_fetch_数组返回的php数组
所以使用
if(count($result)===1) {...}
或(最好)
使用mysql或mysqli,但不要两者混合使用
顺便说一句:当您直接在查询中使用用户输入时,请确保保护查询不被注入。使用mysqli\u num\u rows($SQL)
相反,请阅读文档:-您必须传递查询结果。它不接受数组。使用该代码或count($result)
。这意味着您的SQL查询没有返回任何内容。您正在混合使用MySQL API。这不是rhum&coke。你有工作代码。现在出了什么问题(我知道原因),为什么你要改变一些没有坏的东西?只使用一个MySQL API,然后继续使用它。我们不能总是不断地辅导你或纠正本可以避免的错误。换言之;当您看到mysqli\uuu
和mysql\uu
时,它们不能一起工作。或者让你的所有函数都mysqli_
或者mysqli_
——顺便说一句,后者不是首选的API。如果还没有,我很想写一个脚本,检测mysqli_
的任何实例,并用mysqli_
替换它们,只要我看到这样的问题,就把它放到答案中,当混合API时。然后OP就可以将其插入他们的代码中。
if(mysqli_num_rows($SQL) === 1) { ... }