Latest web development tutorials
×

PHP curso

PHP curso PHP breve introducción PHP instalar PHP gramática PHP variable PHP echo/print PHP Tipos de datos PHP constante PHP cadena PHP operadores PHP If...Else PHP Switch PHP formación PHP Ordenación de un conjunto PHP superglobals PHP While circulación PHP For circulación PHP función PHP Las variables mágicas PHP Los espacios de nombres PHP Orientado a Objetos

PHP formulario

PHP formulario PHP autenticación de formularios PHP formulario - Los campos necesarios PHP formulario - correo electrónico de verificación y la URL PHP instancia completa formulario PHP $_GET variable PHP $_POST variable

PHP Tutorial avanzado

PHP Las matrices multidimensionales PHP fecha PHP contener PHP expediente PHP Cargar archivo PHP Cookie PHP Session PHP E-mail PHP seguridad E-mail PHP Error PHP Exception PHP filtro PHP filtro avanzado PHP JSON

PHP 7 nuevas características

PHP 7 nuevas características

PHP base de datos

PHP MySQL breve introducción PHP MySQL conexión PHP MySQL La creación de una base de datos PHP MySQL Crear una tabla de datos PHP MySQL insertar datos PHP MySQL Insertar datos múltiples PHP MySQL Sentencias preparadas PHP MySQL leer datos PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introducción AJAX PHP AJAX base de datos AJAX XML AJAX búsqueda en tiempo real AJAX RSS Reader AJAX voto

PHP Manual de referencia

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Procesamiento de imágenes PHP RESTful

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 = "[email protected]";
$ Stmt-> execute ();

$ Nombre = "María";
Apellido $ = "Moe";
$ Email = "[email protected]";
$ Stmt-> execute ();

$ Nombre = "Julie";
Apellido $ = "Dooley";
$ Email = "[email protected]";
$ 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 = "[email protected]";
$ Stmt-> execute ();

// Introducir otra fila
$ Nombre = "María";
Apellido $ = "Moe";
$ Email = "[email protected]";
$ Stmt-> execute ();

// Introducir otra fila
$ Nombre = "Julie";
Apellido $ = "Dooley";
$ Email = "[email protected]";
$ Stmt-> execute ();

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