Primera parte de la clase para conectar adb:
class adb {
private $server = «localhost»;
private $user = «root»;
private $pass = «intelisen»;
private $db = «tienda»;
private $log = «errores.log»;
private $con;
public $numFilas;
public $filas;
function __construct() {
$this->conectar();
}
/**
* Devuelve el número de filas de una tabla
*
* @param string $tabla Tabla a buscar
* @param string $cond Condición opcional para el where
* @return int Número de filas
*/
function numFilas($tabla, $cond = «») {
try {
$sql = «select count(*) as total from $tabla » . (empty($cond) ? » : » where $cond»);
$sqlst = $this->con->prepare($sql);
$sqlst->execute();
$fila = $sqlst->fetch(PDO::FETCH_ASSOC);
$this->numFilas = $fila[‘total’];
return $this->numFilas;
} catch (Exception $ex) {
$this->tratarError(«numFilas», $ex->getMessage(), $sql);
die($ex->getMessage());
}
}
/**
* Selecciona los registros de una tabla.
*
* Podemos añadir los datos del limit y una condición para el where
*
* @param string $tabla Tabla de la base de datos
* @param int $inicio Registro inicial
* @param int $numero Número de registros
* @param string $cond Condición para el where
* @return Array Registros de la base de datos
*/
function seleccionar($tabla,$inicio=0,$numero=10,$cond=»») {
try{
$sql = «select * from $tabla » . (empty($cond) ? » : » where $cond «). » limit $inicio,$numero «;
$sqlst = $this->con->prepare($sql);
$sqlst->execute();
$this->filas = $sqlst->fetchAll(PDO::FETCH_ASSOC);
return $this->filas;
} catch (Exception $ex) {
$this->tratarError(«seleccionar», $ex->getMessage(),$sql);
die($ex->getMessage());
}
}
function seleccionarId($tabla,$id){
try{
$condicion=»id$tabla=$id»;
$filas=$this->seleccionar($tabla,0,1,$condicion);
if (count($filas)>0) return $filas[0];
} catch (Exception $ex) {
$this->tratarError(«numFilas», $ex->getMessage());
die($ex->getMessage());
}
}
function conectar() {
try {
$this->con = new PDO(«mysql:host=$this->server;dbname=$this->db;charset=utf8», $this->user, $this->pass);
$this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $ex) {
$this->tratarError(«conectar», $ex->getMessage());
die($ex->getMessage());
}
}
private function tratarError($origen, $error, $sql = «») {
$f = fopen($this->log, «a»);
fwrite($f, $origen . «|» . $error . «\r\n»);
if (!empty($sql)) {
fwrite($f, $sql . «\r\n»);
}
fclose($f);
}
}