PHP5中使用mysqli的prepare操作数据库的介绍

php5中有了mysqli对prepare的支持,对于大访问量的网站是很有好处的,极大地降低了系统开销,而且保证了创建查询的稳定性和安全性。

PHP5.0后我们可以使用mysqli,mysqli对prepare的支持对于大访问量的网站是很有好处的,特别是事务的支持,在大查询量的时候将极大地降低了系统开销,而且保证了创建查询的稳定性和安全性,能有效地防止SQL注入攻击。

prepare准备语句分为绑定参数和绑定结果两种。接下来具体介绍。

1、绑定参数

看下面php代码:

<?php
//创建连接
$mysqli=new mysqli("localhost","root","","123456");
//检查连接是否被创建
if (mysqli_connect_errno()) {
 printf("Connect failed: %s\n", mysqli_connect_error());
 exit();
}
/**
 * 创建一个准备查询语句:
 * ?是个通配符,可以用在任何有文字的数据
 * 相当于一个模板,也就是预备sql语句
 */
if ($stmt = $mysqli->prepare("insert into `codetc_msg`(mid,content) values(?,?)")){
 /**
 * 第一个参数是绑定类型,"is"是指上面SQL语句中第一个?参数是int类型,第二个?参数是string类型
 * 其中i指int,s指string, 除了i、s之外还有d代表双精度浮点型,b代表blod类型等
 */
 $stmt->bind_param("is",$id,$content);
 //给变量赋值
 $id = 1;
 $content = "这是插入的内容";
 //执行准备语句
 $stmt->execute();
 //显示插入的影响行数
 echo "Row inserted".$stmt->affected_rows;
 //关闭数据库的链接
 $mysqli->close();
}
?> 

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

请看下面的php代码:

<?php
//创建连接
$mysqli=new mysqli("localhost","root","","123456");
//设置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 `codetc_msg`")){
 //执行查询
 $stmt->execute();
 //为准备语句绑定实际变量
 $stmt->bind_result($id,$content);
 //显示绑定结果的变量
 while($stmt->fetch()){
 echo "第".$id."条: ".$content."<br>";
 }
 //关闭数据库的链接
 $mysqli->close();
}
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • PHP CURL使用详解

    PHP CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS.CURL可以根据URL前缀是"HTTP" 还是"HTTPS"自动选择是否加密发送内容. 使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始化连接句柄: 2.设置CURL选项: 3.执行并获取结果: 4

  • PHP后台备份MySQL数据库的源码实例

    PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对于一些不便自己写shell脚本备份的VPS来说,就不用使用 FTP 或者使用 mysql 的管理工具进行 mysql 数据库备份下载,非常方便. 下面是一个php数据库备份的源代码,大家也可以根据自己的需求进行修改. <?php // 备份数据库 $host = "localhost"; $user = "root"; /

  • 使用PHP反射机制来构造"CREATE TABLE"的sql语句

    反射是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用. 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言. php反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互.借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个

  • PHP设计模式之工厂模式(Factory Pattern)的讲解

    面向对象编程中,工厂模式是我们最常用的实例化对象模式,工厂类就是一个专门用来创建其它对象的类,工厂类在多态性编程实践中是非常重要的.它允许动态替换类,修改配置,会使应用程序更加灵活.掌握工厂模式对Web开发是必不可少的,它会给你的系统带来更大的可扩展性和尽量少的修改量. 工厂模式通常用来返回类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者. 通常工厂模式有一个关键的构造,即一般被命名为factory的静态方法.这个静态方法可以接受任意数量的参数,并且必须返回一个对象. 一个非常贴近生活

  • PHP时间函数使用详解

    PHP开发中,关于时间函数的使用基本上可以说是无处不在,而PHP中操作时间的方法也很多,比如PHP时间戳.日期与时间戳之间的转换.获取当前日期.当前时间之前或之后的时间等等,下面我们详细讲述一下PHP中各种时间函数的使用. 首先需要知道的是在php中获取时间方法是date(),在php中获取时间戳方法有time().strtotime().下面分别说明. date() 格式为:date($format, $timestamp),format为格式.timestamp为时间戳(可选). time(

  • 在CentOS上安装搭建PHP+Apache+Mysql的服务器环境

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. 以下安装过程是基于centos下,使用yum安装搭建PHP+Apache+Mysql的服务器环境 一:安装MySQL 1.安装 yum install mysql mysql-server mysq

  • PHP应用跨时区功能的实现方法

    PHP中要实现一个跨时区的应用,也就是不同时区登录的用户需要看到自己时区的时间,同时也要能够进行时区的切换. 这里的思路是,系统中所有存储的时间都是GMT(UTC)时间,用户登录时,根据用户所在的时区进行对应的显示. 关于PHP中时间函数的使用就参考:PHP时间函数使用详解.这里我们先了解一下PHP中时区的设置方法.PHP中进行设置的方法比较灵活多样,可以在php.ini中设置date.timezone属性.可以通过代码,调用ini_set('date.timezone', '')设置,也可以使

  • 启用OPCache提高PHP程序性能的方法

    说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法. opcache是Zend Optimizer编译到php环境中的名字,意思即优化缓存.Zend OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销. 这个PHP加速插件的主要原理就是把PH

  • CentOS下安装Memcached和PHP Memcached扩展

    关于高性能的分布式内存对象缓存系统Memcached,我们在另一篇文章中有提到过"在windows系统下如何安装memcached的讲解",这次一起来看看在Centos系统中如何安装Memcached和PHP Memcached扩展 I.安装Memcached 1. 安装依赖包libevent Memcached依赖libevent库,所以安装前可能需要执行 yum install libevent-devel 2.安装memcached 从 http://memcached.org/

  • PHP抽象类与接口的区别详解

    对于面向对象开发,抽象类与接口这两个东西是比较难理解的:就算是对于有一定经验的程序员来说也如此.下面根据自己的理解来讲述一下这两个东西,如有什么不对的,还望不吝赐教. 抽象类:是基于类来说,其本身就是类,只是一种特殊的类,不能直接实例,可以在类里定义方法,属性.类似于模版,规范后让子类实现详细功能. 接口:主要基于方法的规范,有点像抽象类里的抽象方法,只是其相对于抽象方法来说,更加独立.可让某个类通过组合多个方法来形成新的类. 抽象类与接口的相同点: 1.都是用于声明某一种事物,规范名称.参数,

随机推荐