0

我有一个我自己似乎无法解决的问题,虽然脚本有点简单……我只是想写点什么。在 MySQL 数据库 (auto_increment id) 中使用以下脚本:

<?php
// Create a valid MDB2 object named $mdb2
// at the beginning of your program...
require_once 'MDB2.php';

// Once you have a valid MDB2 object named $mdb2...

class addToDb extends MDB2  {

    function __construct() {

        $mdb2 =& MDB2::connect('mysql://************************');
            if (PEAR::isError($mdb2)) {
                die($mdb2->getMessage());
            }

    }

    // 1) Add general information into trips
    function addTrip()  {

        $title = $_POST['title'];
        $author = $_POST['author'];
        $description = $_POST['description'];
        $date_start = $_POST['date_start'];
        $date_end = $_POST['date_end'];

        if(isset($title)) echo $title;
        else echo "!!";

        //$id = $mdb2->extended->getAfterID($id);

        $sql  = "INSERT INTO trips (title, author, description, date_start, date_end) 
                VALUES ($title, $author, $description, $date_start, $date_end)";

        $affected =& $mdb2->exec($sql);

        // Always check that result is not an error
        if (PEAR::isError($affected)) {
            die($affected->getMessage());
        }

    }


    // Disconnect
    function disconnectDb() {

        $mdb2->disconnect();

    }

}


?> 

这就是我要调用对象的方式:

    $input = new addToDb();
    $input->addTrip();
    $input->disconnectDb();

我尝试了很多事情,包括只执行代码而不将其放入类中,总是同样的错误:

Fatal error: Call to a member function exec() on a non-object in /www/htdocs/w007bba1/v3/_class/_general/_db.php on line 36

第 36 行表示

$affected =& $mdb2->exec($sql);

在我的 addToDb 类中。如果有人能告诉我我的脚本在哪里不正确,我将不胜感激,到目前为止我在其他帖子中找不到任何帮助......

问候!斯托基

4

2 回答 2

0

正如错误所说,似乎$mdb2没有对象。

你的问题是你初始化$mdb2了,但变量只在__construct. 您必须将其存储在类变量中才能在addTrip().

于 2011-09-22T14:33:18.380 回答
-1

PDO 使用 Cpanel 用户和密码,而不是 DB 用户和密码。

于 2015-03-17T07:57:11.587 回答