【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();//关闭预处理对象
?>

本文来源:http://www.gdgbn.com/shujuku/29620/