Maison  >  Article  >  développement back-end  >  Analyse de la méthode prepare() en PHP

Analyse de la méthode prepare() en PHP

autoload
autoloadoriginal
2021-04-27 12:53:456097parcourir

Analyse de la méthode prepare() en PHP

Chaque fois qu'une instruction de requête est envoyée au service MySQL, la syntaxe de la requête doit être analysée pour garantir que la structure est correcte et peut être exécutée. Il s’agit d’une étape nécessaire du processus, mais elle entraîne des frais généraux. Il est nécessaire de le faire une fois, mais si vous exécutez la même requête à plusieurs reprises et modifiez les valeurs des colonnes uniquement lors de l'insertion de plusieurs lignes par lots, l'instruction préparée mettra en cache la syntaxe et le processus d'exécution de la requête sur le serveur, et seulement transférer les données entre le serveur et le client. en modifiant les valeurs des colonnes pour éliminer cette surcharge supplémentaire.

Tout d'abord, examinons la syntaxe de PDO::prepare :

public PDO::prepare ( string $statement   , array $driver_options = array()   ) : PDOStatement
  • $statement : doit être un modèle d'instruction SQL valide pour le serveur de base de données cible.

  • $driver_options : Le tableau contient une ou plusieurs paires clé-valeur key=>value, définissez les propriétés de l'objet PDOStatement renvoyé

  • Valeur de retour Si le serveur de base de données termine la préparation de l'instruction, l'objet PDOStatement est renvoyé. Si le serveur de base de données ne peut pas préparer l'instruction, PDO::prepare() renvoie false ou renvoie PDOException (selon le gestionnaire d'erreurs).

Exemple de code :

1. Connectez-vous à la base de données

<?php
$servername="localhost";
$username="root";
$password="root123456";
$dbname="my_database";
$pdo=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
echo "连接成功"."<br>";
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
输出:连接成功

2. Utilisez les paramètres de point d'interrogation pour préparer les instructions SQL

$sql ="select * from fate where `id`=?";
$statement=$pdo->query("select * from fate where `id`=3 ");
var_dump($statement->fetch());

echo "<br>";
$stmt2 = $pdo->prepare($sql);
$stmt2 ->execute(array(3));
var_dump($stmt2->fetch());
rrree

3.Utilisez les paramètres nommés pour préparer les instructions SQL

输出:array(6) {["ID"]=>string(1) "3"0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"}
array(6) {["ID"]=>string(1) "3"[0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"}
$query = "insert into tp_user (id,name,gender)values(:id,:name ,:gender)";
//准备语句
$stmt1 = $pdo->prepare($query);
// 执行查询
$stmt1->execute(array(&#39;id&#39;=> 1,&#39;:name&#39; => &#39;张三&#39;, &#39;:gender&#39; => &#39;男&#39;));
//再次执行
$stmt1->execute(array(&#39;id&#39;=> 2,&#39;:name&#39; => &#39;李四&#39;, &#39;:gender&#39; => &#39;女&#39;));
echo "插入成功!","<br>";

Recommandé : Résumé des questions d'entretien PHP 2021 (collection)》《tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn