La extensión POD se agregó en PHP5. Esta extensión proporciona la clase PDO incorporada de PHP para acceder a la base de datos. Diferentes bases de datos utilizan el mismo nombre de método para resolver el problema de conexiones de bases de datos inconsistentes.
El objetivo de PDO es
proporcionar una API ligera, clara y cómoda.
Unifique las funciones comunes a varias bibliotecas RDBMS sin excluir funciones más avanzadas.
Proporciona un mayor grado opcional de abstracción/compatibilidad a través de scripts PHP.
Características de PDO:
Rendimiento. PDO aprendió desde el principio sobre los éxitos y fracasos de ampliar las bases de datos existentes. Debido a que el código de PDO es completamente nuevo, tenemos la oportunidad de rediseñar el rendimiento desde cero para aprovechar las últimas funciones de PHP 5.
capacidad. PDO está diseñado para proporcionar una funcionalidad de base de datos común como base y, al mismo tiempo, proporcionar un fácil acceso a las características únicas de un RDBMS.
Simple. PDO está diseñado para facilitarle el trabajo con bases de datos. La API no fuerza su camino en su código y deja claro lo que hace cada llamada de función.
Extensible en tiempo de ejecución. La extensión PDO es modular, lo que le permite cargar controladores para el backend de su base de datos en tiempo de ejecución sin tener que volver a compilar o reinstalar todo el programa PHP. Por ejemplo, la extensión PDO_OCI reemplazará la extensión PDO para implementar la API de la base de datos Oracle. También hay controladores para MySQL, PostgreSQL, ODBC y Firebird, y hay más en desarrollo. [separador]
Instalar DOP
Lo que tengo aquí es una extensión PDO para desarrollo en WINDOWS. Si desea instalarla y configurarla en Linux, busque en otra parte.
Requisitos de versión: php5.1 y versiones posteriores ya están incluidas en el paquete; php5.0.x debe descargarse de pecl.php.net y colocarse en su biblioteca de extensiones, que es la carpeta ext de la carpeta donde se encuentra PHP. ;El manual dice que las versiones anteriores a la 5.0 no pueden ejecutar extensiones PDO. Configuración:
Modifique su archivo de configuración php.ini para que admita pdo (si no comprende php.ini, descúbralo primero. Debe modificar el php.ini que se muestra al llamar a su función phpinfo()). Cambiar extensión= php_pdo Elimina el punto y coma delante de .dll. El punto y coma es el símbolo de comentario del archivo de configuración de PHP. Esta extensión es necesaria. hay mas
;extensión=php_pdo.dll
;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=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
La base de datos correspondiente a cada extensión es:
Nombre del controlador Bases de datos compatibles
PDO_DBLIB FreeTDS/Microsoft SQL Server/Sybase
PDO_FIREBIRD Pájaro de fuego/Interbase 6
PDO_INFORMIX Servidor dinámico IBM Informix
PDO_MYSQL MySQL 3.x/4.x
PDO_OCI Interfaz de llamada de Oracle
PDO_ODBC ODBC v3 (IBM DB2, unixODBC y win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 y SQLite 2
Qué base de datos desea utilizar, simplemente elimine el símbolo de comentario ";" antes de la extensión correspondiente.
Usando DOP
Supongo que ha instalado mysql. De lo contrario, busque una manera de instalarlo primero. El mío es mysql5.0.22, y otros que usan MySQL 4.0.26 también pueden usarlo.
Conexión de base de datos:
Usamos el siguiente ejemplo para analizar la base de datos de conexión PDO,
<?php
$dbms='mysql'; // El tipo de base de datos Oracle usa ODI. Para los desarrolladores, que usan diferentes bases de datos, siempre que cambie esto, no necesita recordar tantas funciones.
$host='localhost'; //Nombre del host de la base de datos
$dbName='prueba'; //Base de datos utilizada
$usuario='root'; //Nombre de usuario de conexión a la base de datos
$pass=''; //Contraseña correspondiente
$dsn="$dbms:host=$host;dbname=$dbName";
intentar {
$dbh = new PDO($dsn, $user, $pass); //Inicializar un objeto PDO significa crear el objeto de conexión de la base de datos $dbh;
echo "Conexión exitosa<br/>";
/*También puedes realizar una operación de búsqueda
foreach ($dbh->query('Seleccionar * de FOO') como $fila) {
print_r($row); //Puedes usar echo($GLOBAL);
}
*/
$dbh = nulo;
} captura (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 => true).
$db = nuevo PDO($dsn, $usuario, $contraseña, matriz(PDO::ATTR_PERSISTENT => verdadero));
?>
Consulta de base de datos:
Ya hemos realizado una consulta anterior y también podemos usar la siguiente consulta:
<?php
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER //Establecer atributos);
$rs = $db->query("Seleccione * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($resultado_arr);
?>
Debido a que el método setAttribute() se usa en lo anterior, los dos parámetros se ingresan para forzar que el nombre del campo esté en mayúsculas. A continuación se enumeran los parámetros de PDO::setAttribute(): PDO::ATTR_CASE: Fuerza que los nombres de las columnas estén en un formato, como se detalla a continuación (segundo parámetro):
PDO::CASE_LOWER: Fuerza que los nombres de las columnas estén en minúsculas.
PDO::CASE_NATURAL: Los nombres de las columnas están en su forma original
PDO::CASE_UPPER: fuerza los nombres de las columnas a mayúsculas.
PDO::ATTR_ERRMODE: mensaje de error.
PDO::ERRMODE_SILENT: No muestra información de error, solo código de error.
PDO::ERRMODE_WARNING: Muestra errores de advertencia.
PDO::ERRMODE_EXCEPTION: Lanza una excepción.
PDO::ATTR_ORACLE_NULLS (válido no sólo para ORACLE, sino también para otras bases de datos): ) especifica el valor correspondiente en php para el valor NULL devuelto por la base de datos.
PDO::NULL_NATURAL: sin cambios.
PDO::NULL_EMPTY_STRING: la cadena vacía se convierte en NULL.
PDO::NULL_TO_STRING: NULL se convierte en una cadena vacía.
PDO::ATTR_STRINGIFY_FETCHES: convierte valores numéricos en cadenas al recuperar. Requiere bool.
PDO::ATTR_STATEMENT_CLASS: establece una clase de declaración proporcionada por el usuario derivada de PDOStatement. No se puede usar con instancias de PDO persistentes. Requiere matriz (nombre de clase de cadena, matriz (args de constructor mixto)).
PDO::ATTR_AUTOCOMMIT (disponible en OCI, Firebird y MySQL): si se debe confirmar automáticamente cada declaración.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (disponible en MySQL): utiliza consultas almacenadas en búfer.
$rs->setFetchMode(PDO::FETCH_ASSOC); en el ejemplo es PDOStatement::setFetchMode(), una declaración del tipo de retorno.
Hay los siguientes:
PDO::FETCH_ASSOC -- forma de matriz asociativa
PDO::FETCH_NUM -- Forma de matriz de índice numérico
PDO::FETCH_BOTH: ambos están disponibles en forma de matriz, que es el valor predeterminado
PDO::FETCH_OBJ - en forma de objeto, similar al mysql_fetch_object() anterior
Para obtener más declaraciones de tipos de retorno (PDOStatement::nombre del método), consulte el manual.
insertar, actualizar, eliminar datos,
$db->exec("Eliminar FROM `xxxx_menu` donde mid=43");
Resuma brevemente las operaciones anteriores:
Las operaciones de consulta son principalmente PDO::query(), PDO::exec(), PDO::prepare().
PDO::query() se utiliza principalmente para operaciones que devuelven resultados registrados, especialmente operaciones de selección.
PDO::exec() es principalmente para operaciones que no devuelven un conjunto de resultados, como Insertar, Actualizar, Eliminar y otras operaciones. El resultado que devuelve es el número de columnas afectadas por la operación actual.
PDO::prepare() es principalmente una operación de preprocesamiento. Debe usar $rs->execute() para ejecutar la instrucción SQL en el preprocesamiento. Este método puede vincular parámetros y es bastante poderoso. No se puede explicar simplemente en este artículo. Todos pueden consultar manuales y otra documentación.
Las principales operaciones para obtener el conjunto de resultados son: PDOStatement::fetchColumn(), PDOStatement::fetch(), PDOStatement::fetchALL().
PDOStatement::fetchColumn() es un campo del primer registro especificado en el resultado de la recuperación. El valor predeterminado es el primer campo.
PDOStatement::fetch() se utiliza para obtener un registro.
PDOStatement::fetchAll() es reunir todos los conjuntos de registros en uno. Para obtener los resultados, puede establecer el tipo de conjunto de resultados requerido a través de PDOStatement::setFetchMode.
También hay dos operaciones circundantes, una es PDO::lastInsertId() y PDOStatement::rowCount(). PDO::lastInsertId() devuelve la última operación de inserción y el tipo de columna de clave principal es el último ID de incremento automático.
PDOStatement::rowCount() se utiliza principalmente para el conjunto de resultados afectados por las operaciones Eliminar, Insertar y Actualizar de PDO::query() y PDO::prepare(), y no es válido para el método PDO::exec() y Seleccionar operación.