[Lenguaje PHP-interfaz PDO] La interfaz PDO ejecuta la base de datos de operaciones de secuencias de comandos

Tabla de contenido

Prefacio:

1. Introducción a la DOP

Dos, método de objeto PDO

3. Centro de combate


Prefacio:

PDO: capa de abstracción de base de datos

Introducción: La extensión PDO define una interfaz liviana y consistente para que PHP acceda a la base de datos. PDO resuelve el problema de las conexiones de bases de datos inconsistentes.



1. Introducción a la DOP

1. Introducción a PDO
(1) PDO de PHP (PHP Data Objects) es una extensión para acceder a bases de datos en PHP. Proporciona una interfaz unificada para que los desarrolladores puedan usar la misma forma de interactuar con diferentes tipos de bases de datos, como MySQL, PostgreSQL y SQLite, etc.

(2) Fue lanzado junto con PHP5.1, y las bases de datos compatibles actualmente incluyen Firebird, FreeTDS, Interbase, MySQL, MS SQL Server, ODBC, Oracle, Postgre SQL, SQLite y Sybase.

(3) Cuando opere diferentes bases de datos, solo necesita modificar el DSN en PDO (fuente de la base de datos, como $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";), puede usar el unificación de interfaz PDO para operar.


2. Características de la DOP

(1) Soporte de base de datos: PDO brinda soporte para una variedad de bases de datos, incluidas MySQL, SQLite, PostgreSQL, Oracle, etc., por lo que puede cambiar para usar diferentes bases de datos sin cambiar la lógica del código.

(2) Interfaz orientada a objetos: PDO utiliza una interfaz de programación orientada a objetos, se conecta a la base de datos instanciando la clase PDO y utiliza la clase PDOStatement para realizar consultas y operaciones.

(3) Declaraciones preparadas: PDO admite declaraciones preparadas (declaraciones preparadas), que es una forma de separar las consultas SQL de los datos antes de la ejecución. Las declaraciones preparadas pueden mejorar el rendimiento y brindar una mejor seguridad contra los ataques de inyección SQL.

(4) Parámetros de vinculación: con las declaraciones preparadas de PDO, puede vincular parámetros a consultas en lugar de insertar valores directamente en las declaraciones de SQL. De esta manera, puede prevenir de manera efectiva la inyección de SQL y permitirle reutilizar declaraciones preparadas, simplemente cambie los parámetros enlazados.

(5) Soporte de transacciones: PDO admite transacciones de base de datos. Puede usar beginTransaction() para iniciar una transacción y luego enviar la transacción a través de commit() o usar rollback() para revertir la transacción y deshacer los cambios anteriores.

(6) Manejo de errores: PDO utiliza un mecanismo de excepción para manejar errores en las operaciones de la base de datos. Puede capturar y manejar PDOException para tomar la acción adecuada cuando ocurre un error.

(7) Conjuntos de resultados múltiples: en algunas bases de datos, puede realizar consultas que devuelven conjuntos de resultados múltiples. PDO proporciona métodos para acceder y procesar estos conjuntos de resultados.

(8) Admite marcadores de posición con nombre y marcadores de posición con signo de interrogación: PDO admite el uso de marcadores de posición con nombre (como: nombre) o marcadores de posición con signo de interrogación (como ?) para el enlace de parámetros.

(9) Adquisición de metadatos: PDO proporciona métodos para obtener metadatos de bases de datos, como obtener estructura de tablas, información de columnas, etc.

(10) Gestión de conexiones de bases de datos: PDO proporciona gestión de conexiones de bases de datos, incluida la gestión de grupos de conexiones, configuración de parámetros de conexión, etc.


3. Bases de datos soportadas por PDO



4. Configuración de PDO

Configure el archivo de configuración de php y habilite la extensión correspondiente
extension=php_pdo.dll;

extensión=php_pdo_mysql.dll;


5. PDO se conecta a la base de datos
para conectarse a la base de datos:

1. Formulario de parámetros

2. Formato de URL

3. Archivo de configuración


Formulario de parámetros para conectarse a la base de datos (maestro)

<?php
$host = 'localhost';
$dbname = 'your_database_name';
$username = 'your_username';
$password = 'your_password';

try {
  $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
  // 设置PDO错误模式为异常
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "成功连接到数据库";
} catch(PDOException $e) {
  echo "数据库连接失败: " . $e->getMessage();
}
?>



Dos, método de objeto PDO


1. Método de objeto:


2. Caso de código    

1. Conéctese a la base de datos:

$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    // 设置错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "成功连接到数据库";
} catch (PDOException $e) {
    echo "连接数据库失败: " . $e->getMessage();
}

###
2. Ejecute la declaración de consulta y obtenga el conjunto de resultados:
 

$query = "SELECT * FROM users";
$stmt = $pdo->query($query);

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['username'] . "<br>";
}

###
3. Use sentencias preparadas para ejecutar consultas con parámetros:
 

$query = "SELECT * FROM users WHERE age > :age";
$stmt = $pdo->prepare($query);

$age = 18;
$stmt->bindParam(':age', $age, PDO::PARAM_INT);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['username'] . "<br>";
}

###
4. Insertar datos:

$query = "INSERT INTO users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($query);

$username = "john";
$email = "[email protected]";

$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);

$stmt->execute();

###
5. Actualizar datos:

$query = "UPDATE users SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($query);

$email = "[email protected]";
$id = 1;

$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);

$stmt->execute();



3. Centro de combate

README.md Libro Bansheng/Network Security Knowledge System-Practice Center-Code Cloud-Open Source China (gitee.com) icono-predeterminado.png?t=N5K3https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

BLACKxZONE/Treasure_knowledge https://github.com/BLACKxZONE/Treasure_knowledge

Supongo que te gusta

Origin blog.csdn.net/qq_53079406/article/details/131532967
Recomendado
Clasificación