El mejor tutorial de PHP MySQL preparó declaraciones en 2024. En este tutorial podrás aprender declaraciones preparadas y parámetros vinculados,MySQLi preparó declaraciones,Ejemplos (MySQLi utilizando declaraciones preparadas),DOP preparó declaraciones en,Ejemplos (DOP mediante declaraciones preparadas),

PHP MySQL preparó declaraciones

declaraciones preparadas para evitar la inyección de MySQL es muy útil.


declaraciones preparadas y parámetros vinculados

declaraciones preparadas para ejecutar una pluralidad de la misma instrucción SQL y ejecutar de manera más eficiente.

Obras de sentencias preparadas de la siguiente manera:

  1. Pretratamiento: Crear una plantilla de SQL comunicado enviado a la base de datos. El valor del parámetro reservado "?" Marcos. Por ejemplo:

    INSERT 
    	INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  2. El análisis de bases de datos, compilar, ejecutar la optimización de consultas SQL plantilla de declaraciones, y almacena el resultado no se emite.

  3. Ejecución: Por último, los valores de los parámetros pasados ​​a la unión ( "?" Marca) la aplicación, base de datos ejecuta las instrucciones. Las aplicaciones pueden ser ejecutadas muchas veces, si el valor del parámetro no es el mismo.

En comparación con la ejecución directa de las sentencias SQL, declaración preparada tiene dos ventajas principales:

  • declaraciones preparadas reduce drásticamente el tiempo de análisis, sólo una consulta (aunque no se ejecutan las instrucciones).

  • parámetros permiten reducir el ancho de banda del servidor, sólo es necesario enviar una consulta de parámetros en lugar de toda la declaración.

  • declaraciones preparadas contra la inyección de SQL es muy útil, ya que después de utilizar protocolos diferentes para enviar valores de los parámetros para garantizar la legitimidad de los datos.


MySQLi preparó declaraciones

En el siguiente ejemplo se utiliza la MySQLi en una declaración preparada, y se unen los parámetros correspondientes:

Ejemplos (MySQLi utilizando declaraciones preparadas)

<? Php
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDB";

// Crear conexión
$ Conn = new mysqli ($ nombre de servidor, $ usuario, $ password, $ nombredb);

// La conexión de prueba
if ($ conn-> connect_error) {
die ( "Error de conexión:" $ conn-> connect_error.);
}

// El tratamiento previo y vinculante
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nombre, apellido, correo electrónico) VALUES (,,) ???");
$ Stmt-> bind_param ( "sss", $ apellido, apellido $, $ correo electrónico);

// establecer parámetros y realizar
$ Nombre = "Juan";
Apellido $ = "Doe";
$ Email = "john@example.com";
$ Stmt-> execute ();

$ Nombre = "María";
Apellido $ = "Moe";
$ Email = "mary@example.com";
$ Stmt-> execute ();

$ Nombre = "Julie";
Apellido $ = "Dooley";
$ Email = "julie@example.com";
$ Stmt-> execute ();

echo "El nuevo disco está insertado correctamente";

$ Stmt-> close ();
$ Conn-> close ();
?>

Analizar cada línea de código en los siguientes ejemplos:

"INSERT INTO MyGuests (nombre, apellido, correo electrónico) VALUES (?,?,?)"

En las sentencias SQL, se utiliza el signo de interrogación (?), Aquí podemos reemplazar el signo de interrogación entero, cadena, de doble precisión de punto flotante, y valores booleanos.

A continuación, vamos a ver bind_param () Función:

$ Stmt-> bind_param ( "sss", $ apellido, apellido $, $ correo electrónico);

Los parámetros de SQL función de vinculación, y le dicen al valor del parámetro de base de datos. tipos de datos "Sss" de los parámetros de procesamiento de la columna para el resto de parámetros. s carácter le indica a la base de datos que la cadena de parámetros.

Hay cuatro tipos de parámetros:

  • i - número entero (número entero)
  • d - doble (punto flotante de doble precisión)
  • s - string (cadena)
  • b - BLOB (objeto binario grande: grandes objetos binarios)

Se requiere que cada parámetro para especificar el tipo.

El parámetro tipo de datos le dice a la base de datos, puede reducir el riesgo de inyección SQL.

nota Nota: Si desea insertar datos adicionales (de entrada del usuario), la verificación de los datos es muy importante.


DOP preparó declaraciones en

Los siguientes ejemplos que utilizan comandos preparados en DOP y los parámetros de unión:

Ejemplos (DOP mediante declaraciones preparadas)

<? Php
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDBPDO";

try {
$ Conn = new PDO ( "mysql: host = $ nombre de servidor; dbname = $ dbname", $ usuario, $ password);
// Establecer la excepción modo de error DOP
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

// parámetros de vinculación de pretratamiento y SQL
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALORES (: Nombre ,: apellido ,: correo electrónico) ");
$ Stmt-> bindParam ( ': Nombre', $ apellido);
$ Stmt-> bindParam ( ': apellido', $ apellido);
$ Stmt-> bindParam ( ': e-mail', $ correo electrónico);

// Insertar fila
$ Nombre = "Juan";
Apellido $ = "Doe";
$ Email = "john@example.com";
$ Stmt-> execute ();

// Introducir otra fila
$ Nombre = "María";
Apellido $ = "Moe";
$ Email = "mary@example.com";
$ Stmt-> execute ();

// Introducir otra fila
$ Nombre = "Julie";
Apellido $ = "Dooley";
$ Email = "julie@example.com";
$ Stmt-> execute ();

echo "El nuevo disco está insertado correctamente";
}
captura (PDOException $ e)
{
es Echo $ sql "<br>" $ e-> getMessage ();
}
$ Conn = null;
?>

PHP MySQL preparó declaraciones
10/30