php fluentpdo - >未定义的变量:fpdo

时间:2014-01-01 07:00:06

标签: php mysql fluent

我对包含的内容感到困惑,我认为,我不知道错误到底在哪里。

使用fluentpdo连接文件

    <?php
error_reporting(E_ALL | E_STRICT);
include($_SERVER['DOCUMENT_ROOT'].'/Mark20/libs/FluentPDO/FluentPDO.php');

$pdo = new PDO("mysql:dbname=ummah", "pluto","admin");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$fpdo = new FluentPDO($pdo);
//~ $software->debug = true;
?>

如果我用来插入如下数据: 的 Insert.php

<?php
include '../connect.inc.php';

function inReg(){
    try{
        $values = array('name' 'xyz', 'pwd' => '1234');
        $query = $fpdo->insertInto('users')->values($values)->execute();
        echo 'success';
        return;
    }catch (Exception $e) {
        die ('File did not upload: ' . $e->getMessage());
    }
}
?>

上面的东西没问题,只是在php文件中。我想要做的是使用一个类,如下所示: 连接文件是相同的。

DBInsert.php

<?php

include($_SERVER['DOCUMENT_ROOT'].'/Mark20/bin/connect.inc.php');

class DBInsert {
    function Insert($table, $values){
        try{
            $query = $fpdo->insertInto($table)->values($values)->execute();
            return 'success';
        }catch (Exception $e) {
            die ('File did not upload: ' . $e->getMessage());
        }
    }
}

?>

现在我正在创建上面的类的对象并试图像这样调用Insert函数: 的 test.php的     

include($_SERVER['DOCUMENT_ROOT'].'/Mark20/bin/dao/DBInsert.php');

function Signup(){
    $values = array('name' => 'xyz', 'pwd' => '1234');
    $db = new DBInsert();
    echo $db->Insert('users',$values);
}
Signup();
?>

因此,当我访问Test.php时,我收到以下错误:

  

注意:未定义的变量:E:\ Program Files \ Apache Software中的fpdo   第15行的Foundation \ Apache2.2 \ htdocs \ Mark20 \ bin \ dao \ DBInsert.php

     

致命错误:在非对象中调用成员函数insertInto()   E:\ Program Files \ Apache Software   第15行的Foundation \ Apache2.2 \ htdocs \ Mark20 \ bin \ dao \ DBInsert.php

我是php的新手,也不是全新的:)。非常感谢您的帮助。

谢谢和问候 Adeeb

1 个答案:

答案 0 :(得分:2)

默认情况下,全局变量不在函数范围内。你需要这样做:

function inReg(){
    global $fpdo;
    try{
        $values = array('name' 'xyz', 'pwd' => '1234');
        $query = $fpdo->insertInto('users')->values($values)->execute();
        echo 'success';
        return;
    }catch (Exception $e) {
        die ('File did not upload: ' . $e->getMessage());
    }
}

或将$fpdo作为参数传递给函数。