<?php
class BD {
static $server = "localhost";
static $user = "root";
static $password = "";
static $database = "sakila";
private $table;
static private $conn;
public function __construct($table) {
$this->table = $table;
self::conectar();
}
static function conectar() {
try {
self::$conn = new PDO("mysql:host=" . self::$server . ";dbname=" . self::$database, self::$user, self::$password, [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"]);
self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $ex) {
echo $ex->getMessage();
}
}
function getAll() {
$res = self::$conn->query("select * from " . $this->table);
return $res->fetchAll();
}
/**
* Esta función nos devuelve el elemento de la tabla que tenga este id
* @param int $id El id de la fila
*/
function getById($id) {
$res = self::$conn->query("select * from " . $this->table . " where "
. $this->table . "_id=" . $id);
return $res->fetch();
}
/**
* Elimina el registro que tenga el id que le pasamos
* @param int $id
*/
function deleteById($id) {
try {
self::$conn->exec("delete from " . $this->table . " where "
. $this->table . "_id=" . $id);
} catch (Exception $ex) {
echo $ex->getMessage();
}
}
/**
* Esta función toma como parámetro un array asociativo y nos inserta en la tabla
* un registro donde la clave del array hace referencia al campo de la tabla y
* el valor del array al valor de la tabla.
* ejemplo para la tabla actor: insert(['first_name'=>'Ana','last_name'=>'Pi'])
* @param type $valores
*/
function insert($valores) {
try {
$campos = join(",", array_keys($valores));
$parametros = ":" . join(",:", array_keys($valores));
$sql = "insert into " . $this->table . "($campos) values ($parametros)";
$st = self::$conn->prepare($sql);
$st->execute($valores);
} catch (Exception $ex) {
echo $ex->getMessage();
}
}
}
$actores = new BD("actor");
//print_r($actores->getAll());
$paises = new BD("country");
//$paises->insert(['country'=>'Chiquitistán']);
//print_r($paises->getAll());
//print_r($actores->getById(1));
$v = ['first_name' => 'Ana', 'last_name' => 'Pimiento'];
$actores->insert($v);