Mostrando entradas con la etiqueta conexion a base de datos mysql. Mostrar todas las entradas
Mostrando entradas con la etiqueta conexion a base de datos mysql. Mostrar todas las entradas

13 jul 2013

Clase estándar de conexión a Base de Datos (PHP & MySQL)

Si eres uno de los programadores que realiza aplicativos usando php sin frameworks, este información puede serte útil. Si bien es cierto que cada desarrollador tiene un estilo al momento de maquetar la estructura y el código propiamente dicho de las aplicaciones, es bueno considerar que para los métodos que se usan de manera reiterada, como el de conexión a Base de Datos, existen clases estándar, esta demás decir que muchos frameworks utilizan dichas clases y métodos estandarizados por las comunidades de desarrollo.


Archivo: DB.class.php
class DB {

    private static $instance;
    private $MySQLi;

    private function __construct(array $dbOptions) {

        $this->MySQLi = @ new mysqli(
                $dbOptions['db_host'], $dbOptions['db_user'], $dbOptions['db_pass'], $dbOptions['db_name']);

        if (mysqli_connect_errno()) {
            throw new Exception('Database error.');
        }

        $this->MySQLi->set_charset("utf8");
    }

    public static function init(array $dbOptions) {
        if (self::$instance instanceof self) {
            return false;
        }

        self::$instance = new self($dbOptions);
    }

    public static function getMySQLiObject() {
        return self::$instance->MySQLi;
    }

    public static function query($q) {
        return self::$instance->MySQLi->query($q);
    }

    public static function esc($str) {
        return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
    }
}

En Lugar de explicar el código y los métodos que conforman la clase "db", vamos a pasar directamente a explicar el modo de uso de esta clase.

Creamos un archivo llamado index.php y escribimos el siguiente código

// Referencia a la clase db
require './db.class.php';

// Datos de la conexion
$dbOptions = array(
    'db_host' => 'localhost',
    'db_user' => 'sces',
    'db_pass' => 'sces',
    'db_name' => 'sces01'
);

try {
    DB::init($dbOptions);
    echo "Conexion establecida";
} catch (Exception $exc) {
    echo $exc->getTraceAsString();
}



En el siguiente post veremos la recuperación de datos. Hasta Pronto

5 nov 2011

Conexión a BD (mysql / mysqli )

Antes ya debiste crear un proyecto y el archivo config.php donde se definen las variables de conexion a la BD.

Código config.php

<?php

/*
 * Archivo de configuración de la conexion a la BD
 * * $server : nombre del servidor de la base de datos
 * * $username : nombre del usuario de la base de datos
 * * $password : password del usuario de la base de datos
 * * $databas_name : nombre de la base de datos
 */

$server = 'localhost';
$username = 'root';
$password = '123';
$database_name = 'secayoelsistema';

?>


Diferencias en la sintaxis de la conexión a la BD.
mysql
<?php

/*
 * Código de conexión a una base de datos mediante sintaxis de mysql
 */
include 'config.php';

$conexion = mysql_connect($server, $username, $password);
if($conexion){
    echo 'Conexion OK';
}
else {
    echo 'Error';
}

?>

mysqli
<?php

/*
 * Código de conexión a una base de datos mediante sintaxis de mysqli
 */
include 'config.php';

$conexion = new mysqli($server,$username,$password,$database_name);

if ( $conexion->connect_error )
{
    die('Error de Conexión'. $conexion->connect_error);
}
else
{
    echo 'Conexion OK';
}

?>

Como se daran cuenta cuando usamos mysqli añadimos a la conexión el parámetro $database_name (nombre de la base de datos), en cambio en mysql ése parámetro es añadido en otra funcion llamada mysql_select_db. De esta manera ahorramos lineas de código. Otro detalle es el tratamiento de los errores. Pruebenlo!


link mediafire aquí

Entradas populares