php - 致命错误:未捕获的错误:在 C:\xampp\htdocs\shop\index.php 中调用 null 上的成员函数 query()
问题描述
我的代码有问题 我收到此错误消息
致命错误:未捕获的错误:在 C:\xampp\htdocs\shop\index.php:11 中调用 null 上的成员函数 query() 堆栈跟踪:#0 {main} 在 C:\xampp\htdocs\shop\ 中抛出第 11 行的 index.php
索引.php
<?php
require_once __DIR__.'/function/database.php';
$sql = 'SELECT id, title, description, price FROM products';
$result = getDB()->query($sql);
require __DIR__.'/templates/main.php';
./function/database.php
<?php
function getDB() {
static $db;
if ($db instanceof PDO){
return $db;
}
require_once CONFIG_DIR.'/database.php';
$dsn = sprintf("myqsl:host=%s;dbname=%s;charset=%s",DB_HOST,DB_DATABASE,DB_CHARSET);
return $db;
}
解决方案
您忘记创建PDO
连接:
<?php
function getDB(){
static $db;
if($db instanceof PDO){
return $db;
}
require_once CONFIG_DIR.'/database.php';
$dsn = sprintf("myqsl:host=%s;dbname=%s;charset=%s",DB_HOST,DB_DATABASE,DB_CHARSET);
$db = new PDO($dsn); // ← HERE
return $db;
}
推荐阅读
- c++ - 基于第三个整数的符号快速加/减两个整数
- ruby-on-rails - 通过最相同的has_man查找记录
- optaplanner - 使用 OptaPlanner 通过取货和交货解决多个订单
- java - itext5:非英语连字符不起作用
- azure - 为什么我会收到错误“禁止”。使用服务主体执行 Add-AzKeyVaultManagedStorageAccount 时?
- python - vscode 不出现海龟图形窗口
- python - Pyspark可为空的uuid类型uuid,但表达式的类型是字符变化
- javascript - 函数 - 显示与执行 console.log
- ubuntu - 当我包含 cs50 库时使用 make 编译时出现问题?
- javascript - JavaScript:如何检查数组中的元素是否是正确的长度