Maison  >  Article  >  développement back-end  >  Explication détaillée de l'utilisation de la fonction bind_param() en php

Explication détaillée de l'utilisation de la fonction bind_param() en php

墨辰丷
墨辰丷original
2018-05-24 14:24:426046parcourir

Cet article présente principalement l'utilisation de la fonction bind_param() en php et analyse brièvement les fonctions, les paramètres, les méthodes d'utilisation et les précautions associées de la fonction bind_param(). Les amis dans le besoin peuvent s'y référer

Littéralement. Il n'est pas difficile de comprendre les paramètres de liaison ; permettez-moi d'en parler à travers un exemple de paramètres de liaison :

par exemple :

bind_param("sss", firstname,lastname, $email);

1. Cette fonction lie les paramètres SQL et indique à la base de données la valeur des paramètres. La colonne de paramètres "sss" gère les types de données des paramètres restants. Le caractère s indique à la base de données que le paramètre est une chaîne.

Les paramètres ont les quatre types suivants :

i - entier (type entier)
d - double (type à virgule flottante double précision)
s - string (string)
b - BLOB (booléen)

Chaque paramètre doit spécifier le type.

En indiquant à la base de données le type de données du paramètre, vous pouvez réduire le risque d'injection SQL.

2. Le prénom, le nom et $email ci-dessus sont transmis par des références, qui ne peuvent pas être directement écrites sous forme de chaînes après PHP5.3 Afin de vérifier cette conclusion, j'ai écrit un test ici, comme suit :

$servername="localhost";
$username="root";
$password="admin";
$dbname="test";
$conn=new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
 die("connected failed:".$conn->connect_error);
}
$sql="INSERT INTO user(user_first,user_last,age)VALUES(?,?,?)";
$stmt=$conn->prepare($sql);
$stmt->bind_param("sss","xiao","hong",22);
$stmt->execute();
echo "News records created successfully!";
$stmt->close();
$conn->close();

Ci-dessus, j'ai écrit un programme de test qui écrit les paramètres directement dans les chaînes. Après l'exécution, il apparaît :

.

Enfin, j'ai réécrit le programme comme suit :

$servername="localhost";
$username="root";
$password="password";
$dbname="test";
$conn=new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
   die("Connect failed:".$conn->connect_error);
}
$sql="INSERT INTO user(user_first,user_last,age)VALUES(?,?,?)";
$stmt=$conn->prepare($sql);
$stmt->bind_param("sss",$user_first,$user_last,$age);
$user_first="xiao";
$user_last="hong";
$age=12;
$stmt->execute();
echo "News records created successfully!";
$stmt->close();
$conn->close();

Et le programme ci-dessus peut être exécuté normalement.

Nous espérons que l'ensemble du contenu de cet article sera utile à l'étude de chacun.


Recommandations associées :

bind_param() analyse de l'utilisation de la fonction en php

Explication détaillée de l'utilisation de bindParam et bindValue dans Yii2

Explication détaillée de la différence entre bindParam et bindValue

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