Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无脂肪框架:DB查询-非对象_Php_Mysql_Pdo_Fat Free Framework - Fatal编程技术网

Php 无脂肪框架:DB查询-非对象

Php 无脂肪框架:DB查询-非对象,php,mysql,pdo,fat-free-framework,Php,Mysql,Pdo,Fat Free Framework,我们正在遵循上的入门教程,一切都进行得很顺利,但我们在DB连接上陷入了困境 我们已经创建了$db对象: $db=new DB\SQL( 'mysql:host=localhost;port=3306;dbname=liselore', 'jow', '' ); 我们还设置了一个控制器: $f3->route('GET /', function($f3) { $f3->set('result',$db->exec('SELECT ach

我们正在遵循上的入门教程,一切都进行得很顺利,但我们在DB连接上陷入了困境

我们已经创建了$db对象:

    $db=new DB\SQL(
    'mysql:host=localhost;port=3306;dbname=liselore',
    'jow',
    ''
);
我们还设置了一个控制器:

$f3->route('GET /',
function($f3) {

    $f3->set('result',$db->exec('SELECT achternaam FROM test1'));

    $template = new Template;
    echo $template->render('views/homepage.html');

    }
);

$f3->run();
但是,我们得到了以下错误:

Internal Server Error

Fatal error: Call to a member function exec() on a non-object

• fatfree-master/index.php:32 
我认为错误与未设置的$db对象有关。但是,我们确实设置了php pdo,我只是通过phpinfo()进行了检查

任何帮助都会很好,thx…

您使用的是,这意味着
$db
变量不再存在。您需要使用来告诉PHP允许使用父范围中的变量

$f3->route('GET /', function($f3) use ($db) {
    $f3->set('result', $db->exec('SELECT achternaam FROM test1'));

    $template = new Template;
    echo $template->render('views/homepage.html');
});

$f3->run();
您使用的是,这意味着
$db
变量已不在。您需要使用来告诉PHP允许使用父范围中的变量

$f3->route('GET /', function($f3) use ($db) {
    $f3->set('result', $db->exec('SELECT achternaam FROM test1'));

    $template = new Template;
    echo $template->render('views/homepage.html');
});

$f3->run();
您使用的是,这意味着
$db
变量已不在。您需要使用来告诉PHP允许使用父范围中的变量

$f3->route('GET /', function($f3) use ($db) {
    $f3->set('result', $db->exec('SELECT achternaam FROM test1'));

    $template = new Template;
    echo $template->render('views/homepage.html');
});

$f3->run();
您使用的是,这意味着
$db
变量已不在。您需要使用来告诉PHP允许使用父范围中的变量

$f3->route('GET /', function($f3) use ($db) {
    $f3->set('result', $db->exec('SELECT achternaam FROM test1'));

    $template = new Template;
    echo $template->render('views/homepage.html');
});

$f3->run();
你已经说过了:

使用$f3->set方法设置的所有变量都是全局变量

是的,在那些框架变量中保存这样的对象是一种常见的做法。那就试试吧

$f3->set('DB', $db=new DB\SQL('mysql:host=localhost;port=3306;dbname=liselore','jow',''));
并在其他地方使用:

$f3->set('result',$f3->get('DB')->exec('SELECT achternaam FROM test1'));
你已经说过了:

使用$f3->set方法设置的所有变量都是全局变量

是的,在那些框架变量中保存这样的对象是一种常见的做法。那就试试吧

$f3->set('DB', $db=new DB\SQL('mysql:host=localhost;port=3306;dbname=liselore','jow',''));
并在其他地方使用:

$f3->set('result',$f3->get('DB')->exec('SELECT achternaam FROM test1'));
你已经说过了:

使用$f3->set方法设置的所有变量都是全局变量

是的,在那些框架变量中保存这样的对象是一种常见的做法。那就试试吧

$f3->set('DB', $db=new DB\SQL('mysql:host=localhost;port=3306;dbname=liselore','jow',''));
并在其他地方使用:

$f3->set('result',$f3->get('DB')->exec('SELECT achternaam FROM test1'));
你已经说过了:

使用$f3->set方法设置的所有变量都是全局变量

是的,在那些框架变量中保存这样的对象是一种常见的做法。那就试试吧

$f3->set('DB', $db=new DB\SQL('mysql:host=localhost;port=3306;dbname=liselore','jow',''));
并在其他地方使用:

$f3->set('result',$f3->get('DB')->exec('SELECT achternaam FROM test1'));


尝试添加
global$db在这一行之后
函数($f3){
-您的答案有一个作用域issueThx,但是使用$f3->set方法设置的所有变量都是全局变量,请参见:我们使用的代码与教程中的示例完全相同:如果使用闭包,则需要使用
函数($f3)use($db){
奇怪,如果我将新的db/sql对象创建移到“函数内部”,那么一切都会正常工作……对此有什么想法吗?尝试在这一行
函数($f3)之后添加
global$db;
{
-您的答案有一个作用域issueThx,但是使用$f3->set方法设置的所有变量都是全局变量,请参见:我们使用的代码与教程中的示例完全相同:如果使用闭包,则需要使用
函数($f3)use($db){
奇怪,如果我将新的db/sql对象创建移到“函数内部”,那么一切都会正常工作……对此有什么想法吗?尝试在这一行
函数($f3)之后添加
global$db;
{
-您的答案有一个作用域issueThx,但是使用$f3->set方法设置的所有变量都是全局变量,请参见:我们使用的代码与教程中的示例完全相同:如果使用闭包,则需要使用
函数($f3)use($db){
奇怪,如果我将新的db/sql对象创建移到“函数内部”,那么一切都会正常工作……对此有什么想法吗?尝试在这一行
函数($f3)之后添加
global$db;
{
-您的答案有一个作用域issueThx,但是使用$f3->set方法设置的所有变量都是全局变量,请参见:我们使用的代码与教程中的示例完全相同:如果使用闭包,则需要使用
函数($f3)use($db){
奇怪,如果我将新的db/sql对象创建移到“函数内部”,那么一切都会正常工作……对此有何想法?