我有两个 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
,这是正确的,因为我只有一行对应于名字 Jack。
这是从同一个表访问相同数据的另一种方法:
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 查询输出始终为空。
我在这两种情况下都使用相同的数据库表。我不明白出了什么问题。
注意:- init.php
用于建立与数据库的连接,并且工作正常。
最佳答案
您未能在方法中传入 $con 变量。
您必须更改方法签名以传入名称变量和连接变量。
您没有得到任何结果,因为它没有数据库连接。
关于php - 与 php 一起使用时相同的 mysqli 查询但结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881764/