Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql登录表单_Php_Mysql - Fatal编程技术网

php mysql登录表单

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错误“警告:mysql_num_rows()期望参数1是资源,在中给出null” 我试着四处看看,但似乎没有任何帮助或工作

<?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) { ... }