Revision: 51150
Updated Code
at September 16, 2011 01:14 by jose_506
Updated Code
<?php
class DatabaseMysql{
//Constants
const host="localhost";
const user="root";
const password="";
const test=true;
const database="presupuestos";
const email_admin="[email protected]";
//Variables privates
private static $singleInstancia;
private $connection;
private $selec_bbdd;
//Constructor
/*SINGLETON*/
private function __construct()
{
//echo 'Estoy construido';
//$this->database =isset($db)?$db:$this->err();
}
public static function getInstancia(){
if(!self::$singleInstancia){
self::$singleInstancia= new self();
}
return self::$singleInstancia;
}
function Metodo(){
var_dump(self::$singleInstancia);
}
public function __clone()
{
trigger_error('No se permite la clonación.', E_USER_ERROR);
}
//Show erros the mysql
function err(){
if (self::test){
echo "<b><font color='red'>ERROR:</b> --> </b>" .
mysql_errno() . "</b> - <i>" . mysql_error() . "</i></font>";
exit();
}else{
//echo "<b><font color='red'>Ha habido un error." . mysql_error() . "</font></b>";
if (self::email_admin){
//echo ", el administrador ha sido informado por email";
mail(self::email_admin,
"Error mysql en" . $_SERVER['PHP_SELF'],
"Error-> " . mysql_error() .
"\n en->" . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING'] .
"\n a las-> " . date('H:i:s - D-d-m-Y'));
}
exit();
}
}
public function Connect(){
$this->connection = @mysql_connect(self::host, self::user, self::password) or $this->err();
$this->selec_bbdd = @mysql_select_db(self::database, $this->connection) or $this->err();
}
// @todo: probar mysql_unbuffered_query() ya que no guarda en buffer y ahorra memoria
// @todo: ver como hacer la liberacion de consultas grandes o especificar por parametro a la funcion si es consulta grande o no
//registro seleccionados por el select mysql_num_rows()
public function Queryarray($query){
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_array($result,MYSQL_NUM)){
$arr_num[] = $fila;
}
return($arr_num);
}
//Query simple
//
public function Query($query){
$result=mysql_query($query,$this->connection)or $this->err();
return $result;
}
// @todo: Definir comentarios
public function Queryassoc($query){
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_assoc($result)){
$arr_asoc[] = $fila;
}
return $arr_asoc;
}
public function Queryassocwhere($table,$field,$value){
$query="SELECT * FROM $table WHERE $field=$value LIMIT 1";
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_assoc($result)){
$arr_asoc[] = $fila;
}
return $arr_asoc;
}
public function Queryrowwhere($table,$field,$value){
$query="SELECT * FROM $table WHERE $field='$value' LIMIT 1";
$result=mysql_query($query,$this->connection);
$fila = mysql_fetch_row($result);
return $fila;
}
public function QueryObject($select,$table) {
if(isset($table))
{
$fields=isset($select)?$select:'*';
$query="SELECT $fields FROM $table";
$result=mysql_query($query,$this->connection);
return mysql_fetch_object($result);
}
}
// mysql_query_retorna true o false si es insert,delete,drrop y update y filas afectadas por la consulta mysql_affected_rows()
public function Insertquery($query){
$result=mysql_query($query)or $this->err();
return $result;
}
public function Deletequery($field,$value,$table){
return mysql_query("DELETE FROM `$this->database`.`$table` WHERE `$table`.`$field`=$value",$this->connection);
}
public function Newidtable($field,$table){
$query="SELECT MAX($field) AS id_max FROM $table";
$result=mysql_query($query,$this->connection);
$valuemax= mysql_fetch_row($result);
return $valuemax[0];
}
public function Close(){
mysql_close($this->connection) or $this->err();
}
public function Info(){
$information="Version mysql: ". mysql_get_client_info()."<br/>";
$information.=" Connection and hostname: ".mysql_get_host_info()."<br/>";
$information.=" Protocol: ".mysql_get_proto_info()."<br/>";
$information.=" Server version mysql: ".mysql_get_server_info()."<br/>";
$information.=" Server version mysql: ".mysql_get_server_info()."<br/>";
$information.=" ". mysql_stat($this->connection)."<br/>";
return $information;
}
public function ListTable($table,$type=NULL){
if(isset($type)){
return $type=='array'?$this->Queryarray("SELECT * FROM $table"):$this->Queryassoc("SELECT * FROM $table");
}else{
return $this->Queryarray("SELECT * FROM $table");
}
}
public function ListTableJoin($table1,$table2,$field1,$field2,$select){
try{
$fields = isset($select)?$select:'*';
return $this->Queryassoc("SELECT $fields FROM $table1 AS t1 INNER JOIN $table2 AS t2 ON t1.$field1 = t2.$field2");
}catch(Exception $e){
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
}
public function ExistRecords($table,$where=NULL){
if(isset($where)){
$result = mysql_query("SELECT * FROM $table WHERE $where", $this->connection) or $this->err();
}else{
$result = mysql_query("SELECT * FROM $table", $this->connection) or $this->err();
}
return mysql_num_rows($result);
// return $this->connection;
}
//@todo: crear funcion de chequeo de coenxion con el servidor o de ping
public function get($name){
return $this->$name;
}
}
?>
Revision: 51149
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 16, 2011 00:36 by jose_506
Initial Code
<?php
class DatabaseMysql{
//Constants
const host="localhost";
const user="root";
const password="";
const test=true;
const database="presupuestos";
const email_admin="[email protected]";
//Variables privates
private static $singleInstancia;
private $connection;
private $selec_bbdd;
//Constructor
/*SINGLETON*/
private function __construct()
{
//echo 'Estoy construido';
//$this->database =isset($db)?$db:$this->err();
}
public static function getInstancia(){
if(!self::$singleInstancia){
self::$singleInstancia= new self();
}
return self::$singleInstancia;
}
function Metodo(){
var_dump(self::$singleInstancia);
}
public function __clone()
{
trigger_error('No se permite la clonación.', E_USER_ERROR);
}
//Show erros the mysql
function err(){
if (self::test){
echo "<b><font color='red'>ERROR:</b> --> </b>" .
mysql_errno() . "</b> - <i>" . mysql_error() . "</i></font>";
exit();
}else{
//echo "<b><font color='red'>Ha habido un error." . mysql_error() . "</font></b>";
if (self::email_admin){
//echo ", el administrador ha sido informado por email";
mail(self::email_admin,
"Error mysql en" . $_SERVER['PHP_SELF'],
"Error-> " . mysql_error() .
"\n en->" . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING'] .
"\n a las-> " . date('H:i:s - D-d-m-Y'));
}
exit();
}
}
public function Connect(){
$this->connection = @mysql_connect(self::host, self::user, self::password) or $this->err();
$this->selec_bbdd = @mysql_select_db(self::database, $this->connection) or $this->err();
}
// @todo: probar mysql_unbuffered_query() ya que no guarda en buffer y ahorra memoria
// @todo: ver como hacer la liberacion de consultas grandes o especificar por parametro a la funcion si es consulta grande o no
//registro seleccionados por el select mysql_num_rows()
public function Queryarray($query){
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_array($result,MYSQL_NUM)){
$arr_num[] = $fila;
}
return($arr_num);
}
//Query simple
//
public function Query($query){
$result=mysql_query($query,$this->connection)or $this->err();
return $result;
}
// @todo: Definir comentarios
public function Queryassoc($query){
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_assoc($result)){
$arr_asoc[] = $fila;
}
return $arr_asoc;
}
public function Queryassocwhere($table,$field,$value){
$query="SELECT * FROM $table WHERE $field=$value LIMIT 1";
$result=mysql_query($query,$this->connection);
while($fila = mysql_fetch_assoc($result)){
$arr_asoc[] = $fila;
}
return $arr_asoc;
}
public function Queryrowwhere($table,$field,$value){
$query="SELECT * FROM $table WHERE $field='$value' LIMIT 1";
$result=mysql_query($query,$this->connection);
$fila = mysql_fetch_row($result);
return $fila;
}
public function QueryObject($select,$table) {
if(isset($table))
{
$fields=isset($select)?$select:'*';
$query="SELECT $fields FROM $table";
$result=mysql_query($query,$this->connection);
return mysql_fetch_object($result);
}
}
// mysql_query_retorna true o false si es insert,delete,drrop y update y filas afectadas por la consulta mysql_affected_rows()
public function Insertquery($query){
$result=mysql_query($query)or $this->err();
return $result;
}
public function Deletequery($field,$value,$table){
return mysql_query("DELETE FROM `$this->database`.`$table` WHERE `$table`.`$field`=$value",$this->connection);
}
public function Newidtable($field,$table){
$query="SELECT MAX($field) AS id_max FROM $table";
$result=mysql_query($query,$this->connection);
$valuemax= mysql_fetch_row($result);
return $valuemax[0];
}
public function Close(){
mysql_close($this->connection) or $this->err();
}
public function Info(){
$information="Version mysql: ". mysql_get_client_info()."<br/>";
$information.=" Connection and hostname: ".mysql_get_host_info()."<br/>";
$information.=" Protocol: ".mysql_get_proto_info()."<br/>";
$information.=" Server version mysql: ".mysql_get_server_info()."<br/>";
$information.=" Server version mysql: ".mysql_get_server_info()."<br/>";
$information.=" ". mysql_stat($this->connection)."<br/>";
return $information;
}
public function ListTable($table,$type=NULL){
if(isset($type)){
return $type=='array'?$this->Queryarray("SELECT * FROM $table"):$this->Queryassoc("SELECT * FROM $table");
}else{
return $this->Queryarray("SELECT * FROM $table");
}
}
public function ListTableJoin($table1,$table2,$field1,$field2,$select){
try{
$fields = isset($select)?$select:'*';
return $this->Queryassoc("SELECT $fields FROM $table1 AS t1 INNER JOIN $table2 AS t2 ON t1.$field1 = t2.$field2");
}catch(Exception $e){
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
}
public function ExistRecords($table,$where=NULL){
if(isset($where)){
$result = mysql_query("SELECT * FROM $table WHERE $where", $this->connection) or $this->err();
}else{
$result = mysql_query("SELECT * FROM $table", $this->connection) or $this->err();
}
return mysql_num_rows($result);
// return $this->connection;
}
//@todo: crear funcion de chequeo de coenxion con el servidor o de ping
public function get($name){
return $this->$name;
}
}
?>
Initial URL
Initial Description
Initial Title
Class database mysql
Initial Tags
mysql, database, class, php
Initial Language
PHP