La extensión PHP Data Objects (PDO) define una interfaz liviana y consistente para que PHP acceda a bases de datos.
PDO proporciona una capa de abstracción de acceso a datos, lo que significa que no importa qué base de datos se utilice, se pueden utilizar las mismas funciones (métodos) para consultar y obtener datos.
PDO se lanza con PHP5.1 y también se puede usar en la extensión PECL de PHP5.0, pero no se puede ejecutar en versiones anteriores de PHP.
Puede comprobar si la extensión PDO está instalada a través de la función phpinfo() de PHP.
En Unix o Linux necesitas agregar la siguiente extensión:
extensión=pdo.so
PDO y todos los controladores principales se envían con PHP como extensiones compartidas. Para activarlos, simplemente edite el archivo php.ini y agregue la siguiente extensión:
extensión=php_pdo.dllAdemás, existen diversas extensiones de bases de datos correspondientes a las siguientes:
;extensión=php_pdo_firebird.dll;extensión=php_pdo_informix.dll;extensión=php_pdo_mssql.dll;extensión=php_pdo_mysql.dll;extensión n=php_pdo_oci.dll;extensión=php_pdo_oci8.dll;extensión=php_pdo_odbc.dll;extensión=php_pdo_pgsql.dll;extensión=php_pdo_sqlite.dll
Después de establecer estas configuraciones, debemos reiniciar PHP o el servidor web.
A continuación, echemos un vistazo a ejemplos específicos. El siguiente es un ejemplo del uso de PDO para conectarse a una base de datos MySql:
<?php$dbms='mysql'; //Tipo de base de datos $host='localhost'; //Nombre de host de la base de datos $dbName='test'; //Base de datos utilizada $user='root'; $pass=''; //Contraseña correspondiente $dsn="$dbms:host=$host;dbname=$dbName"; intente { $dbh = new PDO($dsn, $user, $pass); //Inicializa un objeto PDO echo "Conexión exitosa<br/>"; /*También puedes realizar una operación de búsqueda foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row) ; //Puedes usar echo($GLOBAL); para ver estos valores} */ $dbh = null;} catch (PDOException $e) { die ("¡Error!: " . $e->getMessage() . "<br/>");}//De forma predeterminada, esta no es una conexión larga. Si necesita una conexión larga a la base de datos, debe agregar un parámetro al final: array(PDO::ATTR_PERSISTENT => verdadero) Se vuelve así: $db = new PDO( $dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>
Es muy simple A continuación, echemos un vistazo más de cerca a las instrucciones específicas de PHP PDO:
Constantes predefinidas
Gestión de conexión de conexión PHP PDO
Transacciones PHP PDO y confirmación automática
PHP PDO declaraciones preparadas y procedimientos almacenados
Errores de PHP PDO y manejo de errores
Objetos grandes PHP PDO (LOB)
Clase DOP:
PDO::beginTransaction — iniciar una transacción
PDO::commit — Confirmar una transacción
PDO::__construct — Crea una instancia de PDO que representa una conexión de base de datos
PDO::errorCode — Obtiene el SQLSTATE asociado con la última operación del identificador de la base de datos
PDO::errorInfo — Devuelve la información de error de la última operación de la base de datos
PDO::exec — Ejecuta una declaración SQL y devuelve el número de filas afectadas
PDO::getAttribute — Recuperar atributos de una conexión de base de datos
PDO::getAvailableDrivers: devuelve una serie de controladores disponibles
PDO::inTransaction — Comprobar si está dentro de una transacción
PDO::lastInsertId — Devuelve el ID o valor de secuencia de la última fila insertada
PDO::prepare — Prepara una instrucción SQL para ser ejecutada y devuelve un objeto PDOStatement
PDO::query: ejecuta sentencias SQL y devuelve objetos PDOStatement, que pueden entenderse como conjuntos de resultados.
PDO::quote: agrega comillas a cadenas en sentencias SQL.
PDO::rollBack — revertir una transacción
PDO::setAttribute — establece un atributo
Clase de declaración PDO:
PDOStatement::bindColumn — Vincular una columna a una variable PHP
PDOStatement::bindParam — Vincula un parámetro al nombre de variable especificado
PDOStatement::bindValue — Vincular un valor a un parámetro
PDOStatement::closeCursor: cierra el cursor para que la instrucción se pueda ejecutar nuevamente.
PDOStatement::columnCount — Devuelve el número de columnas en el conjunto de resultados
PDOStatement::debugDumpParams — Imprime un comando de preprocesamiento SQL
PDOStatement::errorCode — Obtiene el SQLSTATE asociado con la última operación de manejo de declaración
PDOStatement::errorInfo — Obtiene información de error extendida relacionada con la última operación de manejo de declaración
PDOStatement::execute — ejecuta una declaración preparada
PDOStatement::fetch — Obtiene la siguiente fila del conjunto de resultados
PDOStatement::fetchAll — Devuelve una matriz que contiene todas las filas del conjunto de resultados
PDOStatement::fetchColumn: devuelve una sola columna de la siguiente fila del conjunto de resultados.
PDOStatement::fetchObject: obtiene la siguiente fila y la devuelve como un objeto.
PDOStatement::getAttribute — Recuperar un atributo de declaración
PDOStatement::getColumnMeta — Devuelve metadatos para una columna en un conjunto de resultados
PDOStatement::nextRowset — Avanzar al siguiente conjunto de filas en un identificador de declaración de múltiples conjuntos de filas
PDOStatement::rowCount — Devuelve el número de filas afectadas por la declaración SQL anterior
PDOStatement::setAttribute — Establecer un atributo de declaración
PDOStatement::setFetchMode: establece el modo de recuperación predeterminado para declaraciones.