【www.gdgbn.com--mysql教程】
php教程 mysql教程i预处理语句二款实例代码
/*=========================mysqli_stmt预处理类(推荐使用)=========================*/
/*===============================优点:效率高,安全================================*/
$mysqli=new mysqli("localhost","root","123456","xiaoqiangdb");
/*=================================非select语句==================================*/
$sql="insert into shops教程(name,price,num,desn) values(?,?,?,?)"; //准备一条语句放到服务器中
$stmt=$mysqli->prepare($sql); //放到数据库教程
$stmt->bind_param("sdis",$name,$price,$num,$desn); //给占位符传值,类型-变量(不能是值)
$name="zhangsan";
$price=56.56;
$num=66;
$desn="good";
$stmt->execute(); //执行
echo "最后id".$stmt->insert_id;
$stmt->close();
/*=================================select语句==================================*/
$sql="select id,name,price,num,desn from shops where id>?"; //准备一条语句放到服务器中
$stmt=$mysqli->prepare($sql); //放到数据库
$stmt->bind_param("i",$id); //给占位符传值,类型-变量(不能是值)
$stmt->bind_result($id,$name,$price,$num,$desn); //绑定结果集
$id=99;
$stmt->execute(); //执行
$stmt->store_result(); //一次性讲结果都取过来,才能移动指针和获取总数
//字段信息
$result=$stmt->result_metadata();
while($field=$result->fetch_field()){
echo $field->name;
}
echo "
";
//记录信息
$stmt->data_seek(2);
while($stmt->fetch()){
echo "$id--$name--$price--$num--$desn
";
}
echo "记录总数:".$stmt->num_rows;
$stmt->free_result();
$stmt->close();
?>
实例二
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names "gbk"");//设置为中文编码
//$stmt=$mysqli->stmt_init();//返回的就是一个预处理类对象
//准备一条语句
//$sql="insert into `test` ("name","age","dpc") values(?,?,?)";//准备一条语句
//$stmt->prepare($sql);
//其实 mysqli 本身就有prepare()方法,所以,以上的部分可以改为:
//准备一条语句
$sql="insert into `test`(`name`,`age`,`dpc`) values(?,?,?)";//准备一条语句
$stmt=$mysqli->prepare($sql);//直接返回了 stmt对象
//按占位符绑定参数
$stmt->bind_param("sis",$name,$age,$dpc);// “sis”指的是参数的数据类型 s:字符串,i:整型,d:双精度,b:大二进制
//重复插入数据
$name="陈华1";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
$name="陈华2";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
$name="陈华3";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
$name="陈华4";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
echo "最后插入的id:".$stmt->insert_id."
";
echo "最后一条语句影响了行数:".$stmt->affected_rows;
$stmt->
预处理代码
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names "gbk"");//设置为中文编码
//准备一条语句
$sql="select * from `test` where `id`>?";//准备一条语句
$stmt=$mysqli->prepare($sql);//直接返回了 stmt对象
//按占位符绑定参数
$stmt->bind_param("i",$id);// “i”指的是参数的数据类型 s:字符串,i:整型,d:双精度,b:大二进制
$id=5;
$stmt->execute();//执行
$stmt->bind_result($id,$name,$age,$dpc);//绑定结果注意,必须和查询语句中所查询的段名称相对应
$stmt->fetch();//这个方法是一条一条的获取结果集信息
while ($stmt->fetch()){
echo $name."----".$age."----".$dpc."
";
}
$stmt->close();//关闭预处理对象
?>