como les habia comentado, voy a escribir sobre programacion que es a lo que me he dedicado ultimamente, sobre todo en php, y me gustaria dejarles una clase que les facilitara hacer la conexion, algunas transacciones basicas con una base de datos usando adodb
Esta clase utiliza adodb5 y un archivo de configuracion llamado config.php con la informacion para la conexion asi:
<?php /** * Archivo de configuración */ //nombre de la db $base = "nombre_db"; //servidor de la db $servidor = "localhost" //usuario con permiso de acceso $usuario = "root"; //contraseña del usuario $clave = "1234"; ?>
lo que se debe cambiar es la ubicación de el archivo de configuración en include (realpath(dirname(__FILE__) . “/config.php”));.
<?php class ConnectionHandler { /** * ESTA CLASE INICIA LA CONEXION A LA BD SELECCIONADA * @$conn objeto Variable que almacena la conexion; * @$driver char Variable que almacena la bd Utilizada. * */ var $Error; var $id_query; var $driver; var $conn; var $querySql; /* Metodo constructor */ function ConnectionHandler(){ if (!defined('ADODB_ASSOC_CASE')) define('ADODB_ASSOC_CASE',1); include ("adodb5/adodb.inc.php"); include_once ("adodb5/adodb-pager.inc.php"); include_once ("adodb5/tohtml.inc.php"); include (realpath(dirname(__FILE__) . "/config.php")); $ADODB_COUNTRECS = false; $this->driver = $driver; $this->conn = NewADOConnection("$driver"); $this->conn->SetFetchMode(2); if (!$this->conn->Connect($servidor,$usuario,$clave,$base)) die ("No se pudo conectar a la base de datos: ".$this->conn->error); } // Retorna False en caso de ocurrir error; function query($sql){ $cursor = $this->conn->Execute($sql); return $cursor; } function getResult($sql) { if ($sql == "") { $this->Error = "No ha especificado una consulta SQL"; print($this->Error); return 0; } return ($this->query($sql)); } function insert($table,$record) { $temp = array(); $fieldsnames = array(); foreach($record as $fieldName=>$field ) { $fieldsnames[] = $fieldName; $temp[] = $field; } $sql = "insert into " . $table . "(" . join(",",$fieldsnames) . ") values (" . join(",",$temp) . ")"; if ($this->conn->debug==true) { echo "<hr>(".$this->driver.") $sql<hr>"; } $this->querySql = $sql; //$this->conn->BeginTrans(); $res = $this->conn->query( $sql ); if( !$res ) { //$this->conn->RollbackTrans(); } else { //$this->conn->CommitTrans(); } return( $res ); //return ($this->conn->query($sql)); } function update($table, $record, $recordWhere) { $tmpSet = array(); $tmpWhere = array(); foreach($record as $fieldName=>$field ) { $tmpSet[] = $fieldName . "=" . $field; } foreach($recordWhere as $fieldName=>$field ) { $tmpWhere[] = " " . $fieldName . " = " . $field . " "; } $sql = "update " . $table ." set " . join(",",$tmpSet) . " where " . join(" and ",$tmpWhere); if ($this->conn->debug==true) { echo "<hr>(".$this->driver.") $sql<hr>"; } //$this->conn->debug=true; $res = $this->conn->Execute( $sql ); if( !$res ) { //$this->conn->RollbackTrans(); } else { //$this->conn->CommitTrans(); } return( $res ); //return ($this->conn->Execute($sql)); } function delete($table, $record) { $temp = array(); foreach($record as $fieldName=>$field ) { $tmpWhere[] = " " . $fieldName . "=" . $field; } $sql = "delete from " . $table . " where " . join(" and ",$tmpWhere); //print("*** $sql ****"); if ($this->conn->debug==true) { echo "<hr>(".$this->driver.")$sql<hr>"; } return ($this->query($sql)); } } ?>
y para usarla colocamos lo siguiente:
<?php //Incliur archivo de configuracion -- config.php include (realpath(dirname(__FILE__) . "/config.php")); //Iniciar la conexion include_once(LIB . "/conexion.php"); $db = new ConnectionHandler(); $db->conn->SetFetchMode(ADODB_FETCH_NUM); $db->conn->SetFetchMode(ADODB_FETCH_ASSOC); //ver el depurador $db->conn->debug = true; //consulta $sql = " -- consulta a la db --"; //ejecutar la consulta $rs = $db->query($sql);
comentarios