首先大家必须了解mysqli扩展类中为什么要使用prepare准备语句?

这是因为prepare可以解决大访问量的网站给数据库服务器所带来的负载和开销,使用prepare准备语句可以确保创建查询的稳定性和安全性。

下面向大家介绍prepare准备语句的使用实例:

 

prepare绑定参数

<?php
/*   http://www.manongjc.com   */
//创建mysqli类并连接数据库服务器,参数依次为:服务器地址、登录名、登录密码、需要操作的数据库名称
$mysqli=new mysqli(\"127.0.0.1\",\"root\",\"123456\",\"mydb\");

//mysqli_connect_errno()判断是否连接上数据库服务器
if (mysqli_connect_errno()) {
	echo \"连接失败: 错误代码:\".mysqli_connect_error();
	exit();
}
/*
 * $mysqli->prepare创建一个准备查询语句,这里是一个SQL插入语句
 * ?是个通配符,可以用在任何有文字的数据
 * 相当于一个模板,也就是预备sql语句
 */
if ($stmt = $mysqli->prepare(\"insert into `mytable`(id,name) values(?,?)\")){


	/*bind_param()绑定参数。第一个参数是绑定类型,\"s\"是表示字符串类型,\"i\"表示int类型。
      \"is\"$id为int类型,$name为字符串类型
	 */
	$stmt->bind_param(\"is\",$id,$name);

	//给变量$id和$name赋值
    /*   http://www.manongjc.com/article/1194.html   */
	$id = \"\";
	$name= \"manongjc\";

	//执行准备语句
	$stmt->execute();

	//显示插入的语句
	echo \"影响的函数:\".$stmt->affected_rows;

	//关闭数据库服务器的链接
	$mysqli->close();	
}
?>

<##ads_in_article_manong##>

prepare绑定结果

<?php
/*   http://www.manongjc.com   */
//创建mysqli类并连接数据库服务器,参数依次为:服务器地址、登录名、登录密码、需要操作的数据库名称
$mysqli=new mysqli(\"localhost\",\"root\",\"123456\",\"mydb\");

//mysqli_connect_errno()判断是否连接上数据库服务器
if (mysqli_connect_errno()) {
	printf(\"Connect failed: %s\\n\", mysqli_connect_error());
	exit();
}

//创建准备语句
if ($stmt = $mysqli->prepare(\"select id,name from `mytable`\")){	
	//execute执行查询
	$stmt->execute();

	//bind_result为准备语句绑定实际变量
	$stmt->bind_result($id,$name);

	//fetch显示绑定结果的变量
	while($stmt->fetch()){
		echo $id.\"--\".$name.\"<br />\";
	}

	//关闭数据库的链接
	$mysqli->close();	
}
?>

绑定结果就是将你绑定的字段给php变量,以便必要时使用这些变量.

收藏 打印