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 への変更について混乱しています。これについて何か助けていただければ幸いです。
どうもありがとう