No probé el codigo de arriba, pero se ve bueno, ahora, ya el uso de la extensión MYSQL está desaconsejada, podrías usar mysqli, pero tampoco es muy completa.
Lo que actualmente se está usando es la extensión PDO, por su robustez y seguridad en el flujo de información.
Te invito a leer un poco sobre eso, de todos modos te dejo un ejemplo
Archivo de Configuración de Conexión.
"ParametrosDB.php"
Código PHP:
Ver original<?php
class basedeDatos{
public $host = "Aqui la IP o direccion de la base de datos (localhost)";
public $SGBD = "Motor de DB (mysql)";
public $DB = "Nombre de la DB";
public $usuario = "USUARIO (root)";
public $contrasena = "CONTRASEÑA(Si no posee, se deja vacio)";
}
?>
Archivo que contiene la Clase extendida de PDO
"Conexion.php"
Código PHP:
Ver original<?php
/**
* Archivo de Conexion
*
* Este archivo contiene la clase conexion que a su vez contiene los metodos y atributos para el manejo
* de las conexiones a la base de datos
* @copyright 2014
*/
/**
* ParametrosDB
*
* Incluye el archivo que define los parametros de la base de datos a usar en la clase Conexion
*/
include 'parametrosBD.php';
/**
* Conexion
*
* Clase para el manejo de las conexiones y las consultas a la base de datos
*
*/
class conexion extends PDO{
private $stmt;
private $conn;
private $opciones;
/**
* Constructor
*
* Constructor de los parametros de la conexion a la Base de datos
* @param string $host Ip o url a la que se conecta
* @param string $otraBd Nombre de la Base de datos
* @param string $user Usuario de la Base de Datos
* @param string $contasena Password de la Base de Datos
*/
public function __construct($host=NULL,$otraBd=NULL,$user=NULL,$contasena=NULL){
$bd = new basedeDatos();
if($otraBd!=NULL){
$bd->setBD($otraBd);
$bd->setUsuario($user);
$bd->setPass($contasena);
$bd->setHost($host);
}
$opciones = array(PDO
::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
try {
$dsn = $bd->SGBD.":dbname=".$bd->DB.";"."host=".$bd->host;
$this->conn = new PDO($dsn,$bd->usuario,$bd->contrasena,$opciones);
}
catch (PDOException $e){
}
}
/**
* Numero de Registros
*
* Funcion que muestra la cantidad de registros devueltos de la consulta a la base de datos
* @param string $query Contiene la consulta SQL
* @access public
*/
public function ver_num_registros($query){
$csl = $this->conn->prepare($query);
if($csl){
$csl->execute();
return $csl->rowCount();
}
else{
return self::get_error();
}
}
/**
* Consulta
*
* Funcion que devuelve el resultado de una consulta establecida en la variable $qry
* @param string La variable $qry debe contener la sentencia SQL
* @param integer La variable $param debe contener el valor segun el tipo fetch que necesita ejemplo: 2=fetch_assoc
*/
public function query($qry,$param=NULL){
$tipoFetch = 2 ;
$tipoFetch = $param;
}
try{
$res = $this->conn->query($qry, $tipoFetch);
return $res;
}
catch(PDOException $e){
$errorCod=($this->conn->errorInfo());
$errorCod=$errorCod[1];
switch ($errorCod){
case $errorCod===1062:
echo "¡Registro existente!";
break;
case $errorCod===1451:
echo "¡Tiene datos Asignados!";
break;
default:
echo "Error en la DB > ".$errorCod;
break;
}
}
}
/**
* Consulta Preparada
*
* Funcion encargada de ejecutar una consulta preparada
* @param string La variable $sql debe contener la sentencia SQL.
*/
public function prepare($sql){
$this->stmt = $this->conn->prepare($sql);
return $this->stmt;
}
/**
* Ejecutar
*
* Funcion para ejecutar una consulta SQL
* @access public
*/
public function execute(){
$this->stmt->execute();
}
}
?>
Ahora, luego de que establecimos lo anterior, puedes hacer uso de la siguiente forma:
"index.php"
Código PHP:
Ver original<?php
/**
*Incluimos el archivo conexion.php
*/
include 'conexion.php';
//Instanciamos la clase conexion()
$conex=new conexion();
?>
<!--Cuerpo de la web-->
<!DOCTYPE html>
<html>
<head>
<title>Prueba Conexion</title>
</head>
<body>
<table>
<thead><tr><th>Valor1</th><th>Valor2</th></tr></thead>
<tbody>
<?php
$results=$conex->("select * from tabla");
foreach ($results as $key => $value) {
echo "<tr><td>".$value["columna1"]."</td><td>".$value["columna2"]."</td></tr>";
}
?>
</tbody>
</table>
</body>
</html>