2011-09-22 29 views
0

我有我似乎无法来解决我自己的问题,虽然剧本是一种简单的...我只想写一些东西。在MySQL数据库中(AUTO_INCREMENT ID)与下面的脚本:>调用一个成员函数执行exec()一个非对象<当我尝试调用PEAR MDB2类

<?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类中。我会很感激,如果有人能告诉我我的脚本是不正确的,我目前在其他帖子中找不到任何帮助...

Regards! Stocki

回答

0

好像$mdb2是没有对象,AS THE ERROR SAYS。

您的问题是您初始化$mdb2,但该变量仅在__construct范围内可用。您必须将其存储在类变量中才能在addTrip()中使用它。

+0

if(!is_object($ mdb2)){ echo“NO OBJECT!”; } 确定这个返回没有对象,所以我猜的对象只是没有在我的功能aivailable ... – mikesierra

-1

PDO使用Cpanel用户和密码而不是数据库用户和密码。

+0

这是不是PDO。 – cweiske

相关问题