gpt4 book ai didi

php - 使用 MySQLi 时调用非对象的成员函数

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:59 27 4
gpt4 key购买 nike

我一直在做一个相对简单的项目,为了让它更容易,我决定使用 this使数据库连接更容易的 PHP 类。但是,我遇到了一些问题。

<?php
require 'Slim/Slim.php';
require_once('lib/db.php');

\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();
$db = new MysqliDb('127.0.0.1', 'root', '', 'url_shortener');

$app->get('/u/:url', function ($url) {
$urls = $db
->where('short', $url)
->get('urls');
//require('views/u.php');
print_r($urls);
});

当我导航到/u/1 时,出现以下错误:

Fatal error: Call to a member function where() on a non-object in [my site index]

有什么办法解决这个问题吗?

最佳答案

$db 变量在您声明的匿名函数中不可用。您假设它是一个对象,但由于它未定义,因此它是 NULL(在函数内部)。使用闭包,要访问函数范围之外的变量,您可以使用 use 向函数授予权限。关键词。

$app->get('/u/:url', function ($url) use ($db) { ... }

现在 $db 在函数范围内可用,您可以随意使用它。

关于php - 使用 MySQLi 时调用非对象的成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308724/

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