【www.bbyears.com--php函数】
本文实例讲述了php中bind_param()函数用法。分享给大家供大家参考,具体如下:
从字面上不难理解,绑定的参数;下面我通过一个绑定参数的例子讲一下:
for example:
bind_param("sss", firstname,lastname, $email);
1. 该函数绑定了 SQL 的参数,且告诉数据库参数的值。 "sss" 参数列处理其余参数的数据类型。s 字符告诉数据库该参数为字符串。
参数有以下四种类型:
i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(布尔值)
每个参数都需要指定类型。
通过告诉数据库参数的数据类型,可以降低 SQL 注入的风险。
2. 上面的firstname,lastname, $email传的是引用,在php5.3之后是不能直接写成字符串的,为了验证这个结论,在此我写了一段测试,如下:
$servername
=
"localhost"
;
$username
=
"root"
;
$password
=
"admin"
;
$dbname
=
"test"
;
$conn
=
word">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();
上面我写了一段将参数直接写成字符串的测试程序,运行之后弹出:
最后我将程序改写为如下:
$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();
而上面这段程序可以正常执行.