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. Android数据库更新——上万条数据的插入

    在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚 ...

  2. 【Phylab2.0】Alpha版本测试报告

    测试报告集 点击链接

  3. 【百度百科】对焦Focus

    词语解释 duìjiāo [focusing] 指使用照相机时调整好焦点距离 对焦也叫对光.聚焦.通过照相机对焦机构变动物距和相距的位置,使被拍物成像清晰的过程就是对焦. 自动对焦 传统相机,采取一种 ...

  4. 2-SAT 问题

    2-SAT 问题是k-SAT问题在k==2时的特殊情况,因为已经证明k>=3时的k-sat问题属于npc问题.所以在这里仅研究2-SAT的特殊情况.   何为2-sat问题? 简单地说就是有N个 ...

  5. 3 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之heartbeat的搭建

    preface 在上节的说了mysql的搭建,这节我们在上节的基础上,继续搭建heartbeat. 安装和配置heartbeat 采用yum安装,dbmaster81和dbbackup136上都安装, ...

  6. 深入JVM-常用Java虚拟机参数

    一.跟踪调试参数 1.1 跟踪垃圾回收-读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时候,如果垃圾回收频繁出现,或者占用了太长的CPU时间,就不得不引起重视.此时,就需要一 ...

  7. git config --global core.autocrlf false

    git config --global core.autocrlf  false warning: LF will be replaced by CRLF in .idea/vcs.xml.The f ...

  8. re正则表达式13_review of regex symbols

    Review of Regex Symbols This chapter covered a lot of notation, so here’s a quick review of what you ...

  9. 11 Clever Methods of Overfitting and how to avoid them

    11 Clever Methods of Overfitting and how to avoid them Overfitting is the bane of Data Science in th ...

  10. ansible加密命令

    ansible-vault用于配置文件加密,如编写的playbook配置文件中包含敏感信息,不希望其他人随意查看,ansible-valut可加密/解密这个配置文件,刚试了下也可以加密txt文档,猜想 ...