使用php时,相同的mysqli查询但结果不同

时间:2015-08-07 15:44:28

标签: php mysql mysqli

我有两个php脚本来访问我的数据库表中的数据。

的index.php

<?php
require "init.php";
$name = "Jack";
$user_query = "SELECT * FROM employee WHERE employeeName like '$name';";
$result = mysqli_query($con,$user_query);

$data = array();

$no_of_rows = mysqli_num_rows($result);


if($no_of_rows > 0)
{
    $data["error"] = TRUE;
    $data["message"] = "User Found";
    echo json_encode($data);
}

else
{
    $data["error"] = FALSE;
    $data["message"] = "User Not Found";
    echo json_encode($data);

}
?>

如果我回显$no_of_rows,我得到1这是正确的,因为我只有一行对应于杰克的名字。

以下是从同一个表访问相同数据的另一种方法:

test.php的

<?php

require "userTester.php";
$name = "Jack";


$mUser = new UserCheck();

$testResult = $mUser -> userPresent($name);

$data = array();

if($testResult == true)
{
    $data["error"] = TRUE;
    $data["message"] = "User Found";
    echo json_encode($data);
}

else
{
    $data["error"] = FALSE;
    $data["message"] = "User Not Found";
    echo json_encode($data);
}

?>

userTester.php

<?php
require "init.php";

class UserCheck
{

    function userPresent($name)
    {
        echo "Name = " .$name;
        $my_query = "SELECT * FROM employee WHERE employeeName like '$name';";
        $result = mysqli_query($con,$my_query);

        echo json_encode($result);

        $num_of_rows = mysqli_num_rows($result);

        echo "Rows = " .$num_of_rows;

        if($num_of_rows > 0)
        {
            return true;
        }

        else
        {
            return false;
        }

    }

}
?>

在这种情况下, $num_of_rows始终返回0 。实际上,sql查询输出始终为null。

我在两种情况下使用相同的db表。我不明白什么是错的。

注意: - init.php用于建立与数据库的连接,并且工作正常。

1 个答案:

答案 0 :(得分:0)

您未能在方法中传入$ con变量。

您必须更改方法签名以传入名称变量和连接变量。

由于没有数据库连接,因此没有结果。