Я создал имя файла database.php и вот его содержимое
<?php
#Start Session
session_start();
#Start Output Buffering
ob_start();
#Set Default TimeZone
date_default_timezone_set('Asia/Kolkata');
#Define Connection Constant
define('HOST','localhost');
define('USERNAME','user');
define('PASSWORD','pass');
define('DATABASE','database');
//Define Configuration Constant
define('DATE', date("d-F-Y/H:ia"));
#Connect to the database
try
{
#Define Connection String Using PDO.
$DBH = new PDO('mysql:host='.HOST.';dbname='.DATABASE,USERNAME,PASSWORD);
#Set Error Mode to ERRMODE_EXCEPTION.
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo $e->getMessage();
//Log Errors into a file
file_put_contents("resources/logs/Connection-log.txt", DATE.PHP_EOL.$e->getMessage().PHP_EOL.PHP_EOL, FILE_APPEND);
}
?>
, и теперь я определил класс PHP и объявил метод, в котором я хочу получить некоторые значения, основанные насоединение выше.я включил файл database.php.
вот мой код.
include('../../config/database.php');
class Property
{
public function getAllCountries()
{
#Query Using Prepared Statement
$STH = $DBH->query('SELECT * FROM countries');
#Set the Fetch Mode
$STH->setFetchMode(PDO::FETCH_ASSOC);
$countries = array();
while($row = $STH->fetch())
{
$countries[] = $row['name'];
return $countries;
}
}
}
$property = new Property;
echo $property->getAllCountries();
когда я инициализирую класс, у него не возникает никаких проблем, но когда я пытаюсь вызвать $ property-> getAllCountries ();метод, он дает мне следующую ошибку.
Notice: Undefined variable: DBH in /Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/class.property.php on line 8
Fatal error: Call to a member function query() on a non-object in /Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/class.property.php on line 8
что не так с моим кодом?