php - 建立连接时查询错误PHP
问题描述
我不明白为什么我会收到这个错误,我不明白出了什么问题..
错误:致命错误:未捕获的错误:在 null 上调用成员函数 query()
这是代码:
/**
* @category SQL Connection
* @description Connect to SQL Database
*/
$conn = new mysqli('server-0275.whmpanels.com', '---', '---', '---') or die(mysqli_error());
/**
* @sub-category Functions
* @description Main Functions
*/
// If it's home
if ($_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php') {
/**
* @function Users
* @description Count registered users
*/
function users() {
$rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
if ($row = mysqli_fetch_assoc($rs))
return $row['maxUsers'];
return 0;
}
解决方案
$conn
在函数中不可访问,users()
因为它是在函数外部定义的。您可以像这样访问全局变量(不理想 - 阅读为什么不应该这样做):
function users() {
global $conn;
$rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
//rest of code...
}
或者将$conn
变量传递给函数
function users($conn) {
$rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
//rest of code...
}
推荐阅读
- amazon-web-services - AWS Lambda - 重复同步触发,直到满足条件
- swift - iOS 14 / UI 测试 DatePicker
- android - 从前台服务通知创建活动时调用什么方法?
- c# - 当我尝试重新发送时,VSTO Outlook 加载项电子邮件仍保留在发件箱中
- python - 同一图表上的相同查询在 Neptune 与 Gremlify 上返回不同的结果
- excel - 来自 VBA 的 DLL 声明行中的编译器错误“未定义用户定义的类型”
- installation - Hyperledger Fabric - 示例 - 2.2.0 平台特定结构二进制文件不可下载
- sql - 用 100 万条记录填充表
- spring-boot - 如何使用带有自定义标头的 OAuth1.0 使用 Spring Boot 对 API 进行身份验证
- java - Cassandra 节点拒绝加入集群“Compaction Executor”错误