Note that there are some explanatory texts on larger screens.

plurals
  1. POSingleton PDO Model - Hierarchy
    primarykey
    data
    text
    <p>Sorry for poor english, I'm Brazilian, and even worse talking about programming. Let's go. I have this:</p> <pre><code>class DataBase extends PDO { /** * @var object PDO */ private static $instance; /** * Cria uma instância do PDO representando a conexão ao banco de dados e torna a instância disponível como "singleton" * * @param string $dsn O DSN completo, ex.: mysql:host=localhost;dbname=testdb * @param string $username O nome de usuário para a string DSN. Esse parâmetro é opcional para alguns drivers do PDO. * @param string $password A senha para a string DSN. Esse parâmetro é opcional para alguns drivers do PDO. * @param array $driver_options Um array key =&gt; value de opções de conexão específicas do driver * * @return PDO */ public function __construct() { global $config; $dsn = "mysql:dbname={$config['database'][AMBIENTE]['banco']};host={$config['database'][AMBIENTE]['url']}"; $username = $config['database'][AMBIENTE]['usuario']; $password = $config['database'][AMBIENTE]['senha']; if ( !isset ( self::$instance ) ) { try { self::$instance = parent::__construct( $dsn , $username , $password ); } catch ( PDOException $e ) { Functions::Log( 'Erro de conexão de banco de dados: ' . $e-&gt;getMessage() ); header( 'HTTP/1.1 500 Internal Server Error' ); } } $this-&gt;storage = new ArrayObject(); } public static function getInstance() { if ( !self::$instance ) { self::$instance = new DataBase; } return self::$instance; } } </code></pre> <p>and the model that extends the class DataBase: </p> <pre><code>class Model extends DataBase { protected $TABLE_NAME; protected $TABLE_PREFIX; /* all logic here, like getters, setters and methods like update, delete and insert... */ } </code></pre> <p>But I can't use the $this variable to access the PDO methods like query OR prepare. It's says that I'm not called the PDO constructor, even if my Model class constructor call getInstance.</p> <p>It's possible?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload