gpt4 book ai didi

php - 已安装 MySQLi,连接到数据库,有效查询在 phpMyAdmin 中有效,但在 PHP 中无效

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:27 25 4
gpt4 key购买 nike

我用谷歌搜索了这个问题,似乎有多种原因会导致这种情况发生。我有以下代码排除了我看到的大多数主要原因:

$conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName);
// check connection
if ($conn->connect_error) {
trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR);
}
if (function_exists('mysqli_query')) {
print('installed');
}
else{
print('not installed');
}

$sqlQuery="SELECT fname FROM `lists_users` WHERE `id`='2'";

echo $sqlQuery;

// Execute Query -----------------------------
$result = mysqli_query($conn, $sqlQuery);
if(!$result) {
echo "Cannot do query" . "<br/>";
exit;
}

$row = mysqli_fetch_row($result);
$count = $row[0];

if ($count > 0) {
echo "Query works";
} else {
echo "Query doesn't work" ."<br/>";
}

我从上面的代码得到的结果是,Mysqli“已安装”,并且“查询不起作用”。我可以将上面回显的 sql 查询复制并粘贴到 phpMyAdmin 中,它会返回一行。

对于可能出现的问题真的很困惑。

所以在 YourCommonSense 的建议下,我加入了错误报告。我得到的错误是“找不到 mysqli 类”。

所以做了一些更多的谷歌搜索,并尝试了这段代码:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
echo 'We don\'t have mysqli!!!';
} else {
echo 'Phew we have it!';
}

....它返回'Phew we have it!' :\

而且我可以从命令行运行“php -r”new mysqli();“并且它有效。

最佳答案

在您的以下查询中

SELECT fname FROM `lists_users` WHERE `id`='2'

您正在尝试获取 fname,我认为它是 String/Varchar 类型。在您的代码中,以下行

$row = mysqli_fetch_row($result);

将返回数组,$row[0] 将获取 fname(字符串类型)值并将其存储在 $count 变量中现在在 if 语句中比较 String 和 int 会将 String 转换为 int 值,在我们的例子中是“0”,if 语句会给出错误的结果。

如果您想获取计数,请使用 mysqli_num_rows 函数 (http://www.php.net/manual/en/mysqli-result.num-rows.php)。

这应该会给出正确的结果。

关于php - 已安装 MySQLi,连接到数据库,有效查询在 phpMyAdmin 中有效,但在 PHP 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com