mysqli和mysqli_result能完成的功能 都可以使用mysqli_stmt类开完成
1.编译一次,使用多次,类似于存储过程
2.参数化查询,可防止sql注入

   1: <?php

   2: header("Content-Type:text/html; charset=utf8");

   3:  

   4: $mysqli = new mysqli("localhost","root","1234","test2");

   5:  

   6: if($mysqli->connect_error)

   7: {

   8:     die("连接数据库出错:".$mysqli->connect_error);

   9: }

  10:  

  11:  

  12: // 增

  13: // $sql = "insert into userinfo(uName,uAge,uPwd) values(?,?,?);";

  14: // 删

  15: // $sql = "delete from userinfo where id=?;";

  16: // 改

  17: // $sql = "update userinfo set uAge=? where Id=?;";

  18: // 查

  19: // $sql = "select top(?) uName,uAge,uPwd from userinfo where id>?;";

  20: $sql = "select uname,uage,upwd from test2.userinfo where id>? limit ?,5";

  21:  

  22:  

  23: //创建预编译对象

  24: $stmt=$mysqli->prepare($sql);

  25:  

  26: //按顺序给点位符绑定值(绑定参数)

  27: //s:string,i:int,d:double,b:二进制大数据类型

  28:  

  29: // 增

  30: // $stmt->bind_param("sis",$uName,$uAge,$uPwd);

  31: // $uName="阿斯顿";

  32: // $uAge=28;

  33: // $uPwd=3557;

  34:  

  35: // 删

  36: // $stmt->bind_param("i",$Id);

  37: // $Id=25;

  38:  

  39: // 改

  40: // $stmt->bind_param("ii",$uAge,$Id);

  41: // $uAge=15;

  42: // $Id=26;

  43:  

  44: // 查

  45: $stmt->bind_param("ii",$Id,$limitNum);

  46: $Id=10;

  47: $limitNum=5;

  48:  

  49: $stmt->bind_result($uName,$uAge,$uPwd);

  50:  

  51: //执行

  52: $result = $stmt->execute();

  53: if(!$result) echo "执行语句出错:".$stmt->error;

  54:  

  55: while ($stmt->fetch()) {

  56:     echo "$uName----$uAge----$uPwd\n";

  57: }

  58:  

  59: // echo "最后一次添加的数据ID:".$stmt->insert_id."\n";

  60: // echo "受影响行数".$stmt->affected_rows."\n";//只返回最后一次执行sql受影响的行数

  61:  

  62: $stmt->close();

  63:  

  64:  

  65:  

  66: ?>

PHP的扩展类 mysqli_stmt:预处理类的更多相关文章

  1. mysqli_stmt预处理类的使用

  2. mysqli_stmt预处理类

    <?php  $mysqli=new mysqli("localhost", "root", "123456", "xsph ...

  3. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  4. 用扩展开发一个PHP类

    原文:http://my.oschina.net/mickelfeng/blog/122519?p=1 假设我们要用PHP扩展实 现一个类Person,它有一个private的成员变量$_name和两 ...

  5. 用UseMiddleware扩展方法注册中间件类

    用UseMiddleware扩展方法注册中间件类 .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件 ...

  6. 前端笔记之ES678&Webpack&Babel(中)对象|字符串|数组的扩展&函数新特性&类

    一.对象的扩展 1.1对象属性名表达式 ES6可以在JSON中使用[]包裹一个key的名字.此时这个key将用表达式作为属性名(被当做变量求值),这个key值必须是字符串. var a = 'name ...

  7. 找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.应用程序类必 须扩展javafx.application.Application”

    用eclipse写代码的时候,写了一个简单的程序,编译的时候突然出现“错误: 在类 com.test.demo 中找不到 main 方法, 请将 main 方法定义为: public static v ...

  8. ES6...扩展运算符(数组或类数组对象)

    数组和类数组对象定义 数组:[] 类数组对象:只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象. 数组使用 let foo_arr = [ ...

  9. php扩展开发3--扩展类传参数

    1.需要实现的细节 实现一个person类 ,实现一个doing方法和saying方法 在构造方法中传递一个数组,在doing中打印此数组 saying方法中,构建一个空数组,返回,不需要传参. 2. ...

  10. php扩展开发2--添加类

    1.需要实现的细节 实现一个person类 实现一个doing方法和saying方法 2.第一个扩展 2.1创建类的扩展: [root@bogon ext]# cd /usr/local/src/ph ...

随机推荐

  1. 关于《加密与解密》的读后感----对dump脱壳的一点思考

    偶然翻了一下手机日历,原来今天是夏至啊,时间过的真快.ISCC的比赛已经持续了2个多月了,我也跟着比赛的那些题目学了2个月.......虽然过程很辛苦,但感觉还是很幸运的,能在大三的时候遇到ISCC, ...

  2. 使用enum建立简单的状态机

    Overview The enum in Java is more powerful than many other languages which can lead to surprising us ...

  3. ASP.NET WEB API 测试

    编码时测试: Postman + Fiddler4 Postman进行发包 Fiddler4进行抓包 编码结束后测试: 通过Nuget引入组件WebApiTestClient: 接口文档 类属性 测试

  4. 软件工程个人作业 - week1

    <构建之法>阅读疑惑: 如何寻找开发效率和性能的均衡点?显然开发效率强调封装,重视代码重用.但是遗憾的是代码重用往往泛化了数据特征,降低了效率. 如何“公平”分配工作?尤其是团队中人员参差 ...

  5. css3新增属性API

    写在前面:由于CSS5标准还未完全订下来,所以各种内核的浏览器都有自己的标准,为了不使属性混淆,所以各家在各自标准前加了一个前缀. -moz-  主要是firefox火狐 -webikt-主要是chr ...

  6. iOS - NSError用法规范

    iphone跬步之--错误信息 NSError   一.获取系统的错误信息 比如移动文件时,获取文件操作错误: NSError *e = nil;[[NSFileManager defaultMana ...

  7. ZOJ 1107FatMouse and Cheese(BFS)

    题目链接 分析: 一个n * n的图,每个点是一个奶酪的体积,从0,0开始每次最多可以走k步,下一步体积必须大于上一步,求最大体积和 #include <iostream> #includ ...

  8. 电脑开启wifi功能

    在Win7下,以管理员身份启动cmd,输入以下两条命令创建虚拟Wifi,并启动Wifi.其中ssid为WiFi的名字,key为密码.C:\>netsh wlan set hostednetwor ...

  9. cobbler工作流分析

    官网 http://cobbler.github.io/ 介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便, ...

  10. IBatis 批量插入数据

    sql语句 <!--批量插入待收流水--> <insert id="BatchInsertOrder" parameterClass="ArrayLis ...