Poly db - polymedio/polyframework GitHub Wiki

====== Poly_DB ======

''Poly_DB'' es la clase que abstrae la conexión a la base de datos. ''Poly_DB'' extiende PDO agregando la funcionalidad de obtener una instancia configurada por configuración a través de un factoryMethod, similar a un singleton.

La configuración se encuentra en ''app/config/connections.php'':

<code php>

$config['DB'] = array(

'default' => array(

'host' => 'localhost',

'dbname' => 'database',

'username' => 'user1',

'password' => 'secret',

'driver' => 'mysql',

'encoding' => 'utf8',

),

'slave => array(

'host' => 'otherhost',

'dbname' => 'database',

'username' => 'user2',

'password' => 'secret',

'driver' => 'mysql',

'encoding' => 'utf8',

),

);

</code>

Luego ''Poly_DB'' esta lista para usarse:

<code php>

// crea una instancia de Poly_DB leyendo los parámetros de conexión con Poly_Config

$DB = Poly_DB::getInstance(); // equivalente a Poly_DB::getInstance('default')

</code>

Luego podemos trabajar con el API de ''PDO'':

<code php>

$stmt = $DB->query('SELECT * FROM articulos');

$stmt->setFetchMode(PDO::FETCH_ASSOC);

while($row = $stmt->fetch()) {

echo $row['titulo'] . '<br/>';

}

/* equivalente al anterior */

foreach($stmt->fetchAll() as $row) {

echo $row['titulo'] . '<br/>';

}

</code>

Y asi podemos ejecutar sentencias preparadas:

<code php>

$stmt = $DB->prepare("SELECT * FROM articulos WHERE titulo LIKE :titulo");

$stmt->setFetchMode(PDO::FETCH_ASSOC);

//parametros

$stmt->bindValue(':titulo', "%este es%", PDO::PARAM_STR);

$stmt->execute();

pr($stmt->fetchAll());

/*

Array

(

[0] => Array

(

[id] => 3

[titulo] => este es un articulo

[texto] =>

[autor_id] => 0

)

[1] => Array

(

[id] => 4

[titulo] => este es otro articulo

[texto] =>

[autor_id] => 0

)

)

*/

</code>

⚠️ **GitHub.com Fallback** ⚠️