PHP5 mysqli的prepare准备语句使用说明
发布时间:2023-11-22 12:50:29
标签:mysqli,prepare,准备语句
mysqli对prepare的支持对于大访问量的网站是很有好处的,它极大地降低了系统开销,而且保证了创建查询的稳定性和安全性。prepare准备语句分为绑定参数和绑定结果,下面将会一一介绍!
(1)绑定参数
看下面php代码:
<?php
//创建连接
$mysqli=new mysqli("localhost","root","","volunteer");
//检查连接是否被创建
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/*
* 创建一个准备查询语句:
* ?是个通配符,可以用在任何有文字的数据
* 相当于一个模板,也就是预备sql语句
*/
if ($stmt = $mysqli->prepare("insert into `vol_msg`(mid,content) values(?,?)")){
/*第一个参数是绑定类型,"s"是指一个字符串,也可以是"i",指的是int。也可以是"db",
* d代表双精度以及浮点类型,而b代表blob类型,第二个参数是变量
*/
$stmt->bind_param("is",$id,$content);
//给变量赋值
$id = "";
$content = "这是插入的内容";
//执行准备语句
$stmt->execute();
//显示插入的语句
echo "Row inserted".$stmt->affected_rows;
//下面还可以继续添加多条语句,不需要prepare预编译了
//关闭数据库的链接
$mysqli->close();
}
?>
以上php实例运行结果:
Row inserted:1
(2).绑定结果:绑定结果就是将你绑定的字段给php变量,以便必要时使用这些变量
请看下面的php代码:
<?php
//创建连接
$mysqli=new mysqli("localhost","root","","volunteer");
//设置mysqli编码
mysqli_query($mysqli,"SET NAMES utf8");
//检查连接是否被创建
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//创建准备语句
if ($stmt = $mysqli->prepare("select mid,content from `vol_msg`")){
//执行查询
$stmt->execute();
//为准备语句绑定实际变量
$stmt->bind_result($id,$content);
//显示绑定结果的变量
while($stmt->fetch()){
echo "第".$id."条: ".$content."<br />";
}
//关闭数据库的链接
$mysqli->close();
}
?>
0
投稿
猜你喜欢
- 前段时间在论坛上有人问到一个淘宝网上的hover伪类实现的效果如果兼容ie6。其实,问题很简单,就是hover伪类在IE6中得不到很好的支持
- 以下核心代码参考黑客帝国的界面的雨滴图和网友的爱心素材一 音乐播放def alarm(): # 初始化模 &nbs
- eWebEditor编辑器按钮失效,IE8下eWebEditor编辑器无法使用问题解决方法有两个,一个是下面的方法通过修改js文件,其实我们
- 本文为大家分享了mysql 8.0.15 winx64解压版安装配置方法,供大家参考,具体内容如下本地测试需要,安装MySQL最新版本,中间
- 例子:http.Handle("/tmpfiles/", http.StripPrefix("/tmpfile
- 前言:Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和ema
- 【摘 要】 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多
- 1. 用SimpleITK读取dicom序列:import SimpleITK as sitkimport numpy as npimg_p
- 01、介绍在编程语言中,字符串是一种重要的数据结构。在 Golang 语言中,因为字符串只能被访问,不能被修改,所以,如果我们在 Golan
- 本文实例讲述了jsp中select的onchange事件用法。分享给大家供大家参考,具体如下:<script language = &
- 目录1|1可迭代对象1|2判断是否可以迭代1|3什么是迭代器1|4iter()函数1|5总结:2|0生成器2|1什么是生成器1|2函数中使用
- 1、linux系统一般自带perl可运行程序在:/usr/bin/perl2、perl测试程序#!/usr/bin/perl -wuse w
- 导语“超级玛丽”——有多少人还记得这款经典游戏?那个戴帽子的大胡子穿着背带裤的马里奥!带您重温经典的回忆,超级马里奥拯救不开心!炫酷来袭。如
- 每次的大版本更新为全世界的摄影、影视、设计师提供了一系列生产力工具电脑配置符合要求的小伙伴可以尝鲜啦。软件版本越高对电脑的配置要求就越高。目
- 起因修改了表结构以后执行python3 manage.py migrate 报错:django.db.utils.OperationalEr
- 视图在django中,视图对WEB请求进行回应视图接收reqeust对象作为第一个参数,包含了请求的信息视图就是一个Python函数,被定义
- 前言我们在日常开发中,经常会遇到一些关于文件的操作,例如,实现查看目录内容的功能。类似Linux下的tree命令。统计目录下指定后缀文件的行
- 这是一张灵异事件图。。。开个玩笑,这就是一张普通的图片。毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数
- 首先 下载 jedis.jar包然后再 工程设置里面找到Libraries,点击+。添加下载好的jedis.jar包。点击OK退出即可创建J