Внутри моего файла базы данных:PHP: PDO Подключение Настройка Ошибка
class StructureFactory
{
// Default values
protected $provider = null;
protected $connection = null;
// When Class is called, we send the $provider to it
public function __construct(callable $provider)
{
// replace the $provider in the Class to the sent in $provider
$this->provider = $provider;
}
public function create($name)
{
if ($this->connection === null)
{
// Create a new connection with the send in name
$this->connection = call_user_func($this->provider);
}
return new $name($this->connection);
}
}
$provider = function()
{
// New provider variables
$instance = new PDO('mysql:dbname:DBNAME;host=localhost;charset=utf8', 'userHERE', 'passHERE');
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $instance;
};
// send the new provider
$factory = new StructureFactory($provider);
// Create a new connection with $db
function open_database($factory){
$db = $factory->create('db');
global $db;
}
позвонить подключение к базе данных:
define('FILE_ROOT', dirname(__FILE__) . '/');
require_once FILE_ROOT.'inc/database.php';
open_database($factory);
foreach ($db->query("SELECT * FROM tbl_name") as $row) { echo $row['columnName']; }
Но я получаю эту ошибку:
Fatal error: Class 'db' not found in /home/kyleport/public_html/inc/database.php on line 23
Может кто-нибудь ссылается на что-нибудь, что поможет мне попытаться это исправить? Я так плохо борюсь.
http://php.net/manual/en/pdo.construct.php - четвертый параметр - это массив параметров. Имя базы данных является частью вашего DSN – andrewsi
, так где же происходит переименование базы данных? @andrewsi – KDOT
Вы посмотрели ссылку? Он показывает вам, как вам нужно это делать – andrewsi