"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo utilizar eficazmente declaraciones preparadas en MySQL con PHP?

¿Cómo utilizar eficazmente declaraciones preparadas en MySQL con PHP?

Publicado el 2024-12-21
Navegar:222

How to Effectively Use Prepared Statements in MySQL with PHP?

Comenzando con declaraciones preparadas en MySQL

Las declaraciones preparadas son una herramienta esencial para escribir consultas SQL seguras y eficientes. En este artículo, exploraremos cómo usar declaraciones preparadas con mysqli, la extensión MySQLi en PHP.

Error de sintaxis: ejecución sin objeto

El error que encuentra , "Error grave: llamada a una función miembro ejecutar() en un objeto que no es un objeto", normalmente indica que la variable $stmt no está inicializada correctamente o es un objeto. Aquí se explica cómo corregirlo:

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

Asegúrese de tener un conexión válida a la base de datos antes de continuar.

Parámetros de enlace

Las declaraciones preparadas utilizan marcadores de parámetros (por ejemplo, ?) para representar valores de entrada. Estos valores deben estar vinculados a variables PHP antes de ejecutar la declaración. Aquí hay un ejemplo:

$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);

En este ejemplo, vinculamos el parámetro de nombre como una cadena ('s') y el parámetro de edad como un número entero ('i ').

Ejecutar la declaración

Una vez vinculados los parámetros, puede ejecutar el comando preparado. declaración:

$stmt->execute();

Manejo de errores

Las declaraciones preparadas proporcionan un mejor manejo de errores que las consultas SQL directas. Utilice el método mysqli_stmt::error para recuperar mensajes de error:

if ($stmt->error) {
    die("Error: " . $stmt->error);
}

Ejemplo completo

Aquí hay un ejemplo completo de inserción, selección y manejo de errores:

// Establish connection
$mysqli = new mysqli("localhost", "root", "root", "test");

// Prepare and bind parameters
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");
$stmt->bind_param('si', $name, $age);

// Insert multiple rows
$name = 'one';
$age = 1;
$stmt->execute();
$name = 'two';
$age = 2;
$stmt->execute();

// Prepare and execute select statement
$stmt = $mysqli->prepare("SELECT * FROM users");
$stmt->execute();

// Bind result
$result = $stmt->get_result();

// Process results
while ($row = $result->fetch_assoc()) {
    echo $row['name'] . ", " . $row['age'] . "
\n"; } // Handle errors if ($stmt->error) { die("Error: " . $stmt->error); }

Al utilizar declaraciones preparadas, puede evitar ataques de inyección SQL y escribir consultas SQL más sólidas y eficientes.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3