Latest web development tutorials
×

PHP cours

PHP cours PHP Brève introduction PHP installer PHP grammaire PHP variable PHP echo/print PHP Types de données PHP constante PHP chaîne PHP opérateurs PHP If...Else PHP Switch PHP tableau PHP Tri d'un tableau PHP Superglobales PHP While circulation PHP For circulation PHP fonction PHP Variables magiques PHP Namespaces PHP Object-Oriented

PHP forme

PHP forme PHP Authentification Forms PHP forme - Les champs obligatoires PHP forme - email de vérification et d'URL PHP Complète instance de formulaire PHP $_GET variable PHP $_POST variable

PHP Tutorial avancée

PHP Les tableaux multidimensionnels PHP date PHP contenir PHP fichier PHP File Upload PHP Cookie PHP Session PHP E-mail PHP sécurité E-mail PHP Error PHP Exception PHP filtre PHP filtre avancé PHP JSON

PHP 7 Nouvelles fonctionnalités

PHP 7 Nouvelles fonctionnalités

PHP Base de données

PHP MySQL Brève introduction PHP MySQL raccordement PHP MySQL La création d'une base de données PHP MySQL Créer une table de données PHP MySQL Insérer des données PHP MySQL Insérez des données multiples PHP MySQL Déclarations préparées PHP MySQL Lire les données 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 Brève introduction AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en temps réel AJAX RSS Reader AJAX vote

PHP Manuel de référence

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 Traitement de l'image PHP RESTful

PHP MySQL préparé des déclarations

Les instructions préparées pour empêcher l'injection MySQL est très utile.


Les instructions préparées et des paramètres liés

Les instructions préparées pour l'exécution d'une pluralité de la même instruction SQL et exécuter plus efficacement.

Travaux de déclarations préparées comme suit:

  1. Prétraitement: Créer une déclaration modèle SQL envoyé à la base de données. La valeur du paramètre réservé "?" Mark. Par exemple:

    INSERT 
    	INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  2. analyse de la base de données, compiler, exécuter l'optimisation des requêtes SQL déclarations de modèle, et stocke le résultat ne sort pas.

  3. Exécution: Enfin, les valeurs des paramètres passés à la liaison ( "?" Mark) l'application, base de données exécute les instructions. Les applications peuvent être exécutées plusieurs fois, si la valeur du paramètre ne sont pas les mêmes.

Par rapport à l'exécution directe des instructions SQL, déclaration préparée a deux avantages principaux:

  • Les instructions préparées réduit considérablement le temps d'analyse, seule une requête (bien que les instructions sont exécutées).

  • paramètres Bound pour réduire la bande passante du serveur, il vous suffit d'envoyer une requête de paramètre au lieu de l'instruction entière.

  • Les instructions préparées contre l'injection SQL est très utile, car après utiliser différents protocoles pour envoyer des valeurs de paramètres pour assurer la légitimité des données.


MySQLi préparé des déclarations

L'exemple suivant utilise le MySQLi dans une déclaration préparée, et lier les paramètres correspondants:

Exemples (MySQLi utilisant des requêtes préparées)

<? Php
$ Servername = "localhost";
$ Nom d'utilisateur = "username";
$ Password = "mot de passe";
$ Dbname = "myDB";

// Création d'une connexion
$ Conn = new mysqli ($ servername, $ username, $ password, $ dbname);

// Test de connexion
if ($ connect_error conn->) {
die ( "Échec de la connexion:" $ conn-> connect_error.);
}

// Prétraitement et obligatoire
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nom, prénom, email) VALUES (,,) ???");
$ Stmt-> bind_param ( "sss", $ prenom, $ lastname, $ email);

// Définir les paramètres et effectuer
$ Prenom = "John";
$ Nom = "Doe";
$ Email = "[email protected]";
$ Stmt-> execute ();

$ Prenom = "Mary";
$ Nom = "Moe";
$ Email = "[email protected]";
$ Stmt-> execute ();

$ Prenom = "Julie";
$ Nom = "Dooley";
$ Email = "[email protected]";
$ Stmt-> execute ();

echo "Le nouvel enregistrement est inséré avec succès";

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

Parsing chaque ligne de code dans les exemples suivants:

"INSERT INTO MyGuests (nom, prénom, email) VALUES (?,?,?)"

Dans des déclarations SQL, nous utilisons le point d'interrogation (?), Ici, nous pouvons remplacer le point d'interrogation entier, chaîne, double précision en virgule flottante, et des valeurs booléennes.

Ensuite, penchons-nous sur bind_param () fonction:

$ Stmt-> bind_param ( "sss", $ prenom, $ lastname, $ email);

Les paramètres SQL fonction bind, et dire la valeur du paramètre de base de données. Types "sss" paramètre de traitement de la colonne de données pour les paramètres restants. s caractère indique la base de données que la chaîne de paramètres.

Il existe quatre types de paramètres:

  • i - integer (entier)
  • d - le double (le point flottante à double précision)
  • s - chaîne (string)
  • b - BLOB (Binary Large Object: objets binaires volumineux)

Chaque paramètre est requis pour spécifier le type.

Le paramètre de type de données indique la base de données, vous pouvez réduire le risque d'injection SQL.

note Remarque: Si vous souhaitez insérer des données supplémentaires (entrée de l' utilisateur), la vérification des données est très important.


PDO préparé déclarations

Les exemples suivants, nous utilisons des déclarations préparées en PDO et les paramètres de liaison:

Exemples (PDO en utilisant des instructions préparées)

<? Php
$ Servername = "localhost";
$ Nom d'utilisateur = "username";
$ Password = "mot de passe";
$ Dbname = "myDBPDO";

try {
$ Conn = new PDO ( "mysql: host = $ servername; dbname = $ dbname", $ username, $ password);
// Définit l'exception du mode d'erreur PDO
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

// Prétraitement et SQL paramètres de liaison
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nom, prénom, email)
VALUES (: firstname ,: lastname ,: email) ");
$ Stmt-> bindParam ( ': prenom', $ prenom);
$ Stmt-> bindParam ( ': nom', $ lastname);
$ Stmt-> bindParam ( ': email', $ email);

// Insérer une ligne
$ Prenom = "John";
$ Nom = "Doe";
$ Email = "[email protected]";
$ Stmt-> execute ();

// Insérez une autre ligne
$ Prenom = "Mary";
$ Nom = "Moe";
$ Email = "[email protected]";
$ Stmt-> execute ();

// Insérez une autre ligne
$ Prenom = "Julie";
$ Nom = "Dooley";
$ Email = "[email protected]";
$ Stmt-> execute ();

echo "Le nouvel enregistrement est inséré avec succès";
}
catch (PDOException $ e)
{
.. Echo $ sql "<br>" $ e-> getMessage ();
}
$ Conn = null;
?>