Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 为什么mysqli_num_行总是返回0?_Php_Mysql_Database - Fatal编程技术网

Php 为什么mysqli_num_行总是返回0?

Php 为什么mysqli_num_行总是返回0?,php,mysql,database,Php,Mysql,Database,如果数据库中存在单词,我想在用户点击submit按钮后检查用户的输入 因此,我有这个代码。然而,它总是说数据不存在,因为它发现条件是错误的 我下面的代码有什么问题 $input_word = trim($_POST["word"]); $data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'"; $a = mysqli_query($data_check); if (mysqli_num_row

如果数据库中存在单词,我想在用户点击submit按钮后检查用户的输入

因此,我有这个代码。然而,它总是说数据不存在,因为它发现条件是错误的

我下面的代码有什么问题

$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$a = mysqli_query($data_check);
if (mysqli_num_rows($a) == 1)
{
    echo "Data exist.";
}
else
{
    echo "Data DOES NOT exist";
}

您的查询失败,因为您没有将db连接传递到:

$a = mysqli_query($data_check);
连接的变量未知,因此您需要基于:

$a = mysqli_query($connection, $data_check);
对于
num_rows()
,您可能必须使用
>0
而不是
==1
,因为可能有多条记录

您的代码也可以接受sql注入;使用事先准备好的陈述

在查询中使用PHP和
mysqli\u error($connection)


还要确保您的连接实际上是mysqli,而不是另一个api。

您的查询失败,因为您没有将db连接传递给:

$a = mysqli_query($data_check);
$input_word = trim($_POST["word"]);
    $data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
                        $con = mysqli_connect("host",'id','pass','dbname'); // add this connection
                        $a = mysqli_query($con,$data_check);
                        if (mysqli_num_rows($a) == 1)
                        {
                            echo "Data exist.";
                        }
                        else
                        {
                            echo "Data DOES NOT exist";
                        }
连接的变量未知,因此您需要基于:

$a = mysqli_query($connection, $data_check);
对于
num_rows()
,您可能必须使用
>0
而不是
==1
,因为可能有多条记录

您的代码也可以接受sql注入;使用事先准备好的陈述

在查询中使用PHP和
mysqli\u error($connection)

另外,请确保您的连接实际上是
mysqli\uu
,而不是另一个api

$input_word = trim($_POST["word"]);
    $data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
                        $con = mysqli_connect("host",'id','pass','dbname'); // add this connection
                        $a = mysqli_query($con,$data_check);
                        if (mysqli_num_rows($a) == 1)
                        {
                            echo "Data exist.";
                        }
                        else
                        {
                            echo "Data DOES NOT exist";
                        }
您需要将连接放入mysqli_查询参数1中。您可以参考中的教程

您需要将连接放入mysqli_查询参数1中。您可以参考。

中的教程来完成此操作

$dbhost = 'localhost';
$dbuser = 'username';
$dbuser = 'password';
$dbpass = 'dbname';
$dbConn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

$query = "SELECT * FROM word_collections WHERE single_word = '$input_word'";

$result = $dbConn->query($query);
if($result->num_rows == 1){
    echo "have some records";
}else{
    echo "No records";
}
这是最好的方法

$dbhost = 'localhost';
$dbuser = 'username';
$dbuser = 'password';
$dbpass = 'dbname';
$dbConn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

$query = "SELECT * FROM word_collections WHERE single_word = '$input_word'";

$result = $dbConn->query($query);
if($result->num_rows == 1){
    echo "have some records";
}else{
    echo "No records";
}

您确定它返回的值不超过1吗?更重要的是,您对查询非常开放,应该真正使用而不是串联查询。特别是因为你根本没有逃避用户的输入!我读过一篇文章,mysqli_num_rows将只返回1或0@MagnusErikssonNo。。它返回查询中返回的行数。“行数”=“行数”。如果你对php函数有疑问,你应该从问题的根源开始:不完全正确。可能有多个记录。请尝试
>0
,如果失败,则您的查询可能失败,您需要检查错误。@Fred ii-我尝试使用>0,但它仍然表示数据不存在,而我的数据库中已经有数据。您确定它不会返回超过1吗?更重要的是,您对查询非常开放,应该真正使用而不是串联查询。特别是因为你根本没有逃避用户的输入!我读过一篇文章,mysqli_num_rows将只返回1或0@MagnusErikssonNo。。它返回查询中返回的行数。“行数”=“行数”。如果你对php函数有疑问,你应该从问题的根源开始:不完全正确。可能有多个记录。请尝试
>0
,如果失败,则您的查询可能失败,您需要检查错误。@Fred ii-我尝试使用>0,但它仍然表示数据不存在,而我的数据库中已经有数据