0

PHP 5.1 の頃に書かれたこの古いコードがあります。php5.4 を実行している新しいサーバーですべて動作するようにしようとしていますが、以下のコードからこのエラーが発生しています。

致命的なエラー: 非オブジェクトでのメンバー関数 fetch() の呼び出し

<?php
/**
* <b>Database Connection</b> class.
* @author Php Object Generator
* @version 3.0 / PHP5.1
* @see http://www.phpobjectgenerator.com/
* @copyright Free for personal & commercial use. (Offered under the BSD license)
*/
Class Database
{
private function Database()
{
    $databaseName = $GLOBALS['configuration']['db'];
    $driver = $GLOBALS['configuration']['pdoDriver'];
    $serverName = $GLOBALS['configuration']['host'];
    $databaseUser = $GLOBALS['configuration']['user'];
    $databasePassword = $GLOBALS['configuration']['pass'];
    $databasePort = $GLOBALS['configuration']['port'];


    $databaseName = 'bitbsoft_butlers';
    $driver = $GLOBALS['configuration']['pdoDriver'];
    $serverName = 'localhost';
    $databaseUser = 'bitbsoft_butlers';
    $databasePassword = 'Sherw00d123';
    $databasePort = '3306'; 



    if (!isset($this->connection))
    {
        $this->connection = new PDO($driver.':host='.$serverName.';port='.$databasePort.';dbname='.$databaseName, $databaseUser, $databasePassword);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    if (!$this->connection)
    {
        throw new Exception('I cannot connect to the database. Please edit configuration.php with your database configuration.');
    } 
}

public static function Connect()
{
    static $database = null;
    if (!isset($database))
    {
        $database = new Database();
    }
    return $database->connection;
}

public static function Reader($query, $connection)
{
    try
    {
        $result = $connection->Query($query);
    }
    catch(PDOException $e)
    {
        return false;
    }
    return $result;
}

public static function Read($result)
{
    try
    {
        return $result->fetch();
    }
    catch (PDOException $e)
    {
        return false;
    }
}

public static function NonQuery($query, $connection)
{
    try
    {
        $r = $connection->query($query);
        if ($r === false)
        {
            return 0;
        }
        return $r->rowCount();
    }
    catch (PDOException $e)
    {
        return false;
    }

}

public static function Query($query, $connection)
{
    try
    {
        $i = 0;
        $r = $connection->query($query);
        foreach ($r as $row)
        {
            $i++;
        }
        return  $i;
    }
    catch (PDOException $e)
    {
        return false;
    }
}

public static function InsertOrUpdate($query, $connection)
{
    try
    {
        $r = $connection->query($query);
        return $connection->lastInsertId();
    }
    catch (PDOException $e)
    {
        return false;
    }
}
}
?>

現在、行 fetch() によってエラーがスローされていますが、これを引き起こす 5.1 から 5.4 への変更について混乱しています。これについて何か助けていただければ幸いです。

どうもありがとう

4

0 に答える 0