mysqli这个库还是比较繁杂的,这其中又分mysqli ,mysqli_stmt,mysqli_result......一堆类,特别乱

这里奉上thinkphp5.1中使用mysqli扩展的查询用法,以飨诸君

$mysqli = new \mysqli("127.0.0.1","root","1234567","testdb");
$sql = "select * from user_auth_v where userid = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s',$userid);
$stmt->execute();
$ret=$stmt->get_result();
var_dump($ret); //返回结果:object(mysqli_result)#92 (5) { ["current_field"]=> int(0) ["field_count"]=> int(14) ["lengths"]=> NULL ["num_rows"]=> int(7) ["type"]=> int(0) }
echo "结果集长度:".$ret->num_rows;//结果集长度:7
for ($i=1;$i<=$ret->num_rows;$i++)
{
echo "<br>";
var_dump(mysqli_fetch_assoc($ret));
}

由于mysqli不是thinkphp5.1的内置类型,所以引用时要添加斜线:

$mysqli = new \mysqli("127.0.0.1","root","1234567","testdb");


$ret循环返回结果形如: 

array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(24) "查询商品入库信息" ["fullpath"]=> string(28) "logistic/Logistic/generalqry" ["authid"]=> int(4) ["ismenu"]=> int(0) ["link"]=> string(26) "generalqry/:tblname/:param" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(201) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(21) "查询入库单明细" ["fullpath"]=> string(25) "logistic/Logistic/qryrkmx" ["authid"]=> int(5) ["ismenu"]=> int(0) ["link"]=> string(14) "qryrkmx/:param" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(20200) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(27) "添加入库单单头信息" ["fullpath"]=> string(26) "logistic/Logistic/addrkdoc" ["authid"]=> int(6) ["ismenu"]=> int(0) ["link"]=> string(7) "/rk/add" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(20102) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(27) "更新入库单单头信息" ["fullpath"]=> string(26) "logistic/Logistic/updrkdoc" ["authid"]=> int(7) ["ismenu"]=> int(0) ["link"]=> string(10) "/rk/update" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(20103) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(18) "新增入库明细" ["fullpath"]=> string(25) "logistic/Logistic/addrkmx" ["authid"]=> int(8) ["ismenu"]=> int(0) ["link"]=> string(9) "/rkmx/add" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(20201) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(18) "更新入库明细" ["fullpath"]=> string(28) "logistic/Logistic/updaterkmx" ["authid"]=> int(9) ["ismenu"]=> int(0) ["link"]=> string(16) "/rkmx/update/:id" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(20202) }
array(14) { ["userid"]=> string(2) "cj" ["username"]=> string(6) "程劲" ["ugid"]=> int(3) ["roleid"]=> int(2) ["usergroupid"]=> int(6) ["description"]=> string(18) "商品新增入库" ["fullpath"]=> string(28) "logistic/Logistic/loadlrkdoc" ["authid"]=> int(11) ["ismenu"]=> int(1) ["link"]=> string(10) "loadlrkdoc" ["menulevel"]=> int(0) ["role"]=> int(2) ["saiwa"]=> int(2) ["authno"]=> int(2) }
或者是:
$conn = new \mysqli('127.0.0.1','root','1234567','testdb');
$sql = "select authid from user_auth_v where userid = ?";
$stmt = mysqli_stmt_init($conn);
$sentence = mysqli_stmt_prepare($stmt,$sql);
$stmt->bind_param('s',$userid);
$stmt->execute();
$ret = $stmt->get_result();
echo "结果集长度:".$ret->num_rows;
for ($i=1;$i<=$ret->num_rows;$i++)
{
echo "<br>";
var_dump(mysqli_fetch_assoc($ret));
}
  • 全mysqli_stmt模式
$conn = new mysqli('127.0.0.1','root','1234567','testdb');
$stmt = mysqli_stmt_init($conn);
$sql = "select * from user_auth_v where link = ? and userid = ?";
$bindret = mysqli_stmt_prepare($stmt,$sql);
$link = 'gd/list';
$userid = 'cpc';
if ($bindret)
{
mysqli_stmt_bind_param($stmt,'ss',$link,$userid);
mysqli_stmt_execute($stmt);
$rows = mysqli_stmt_get_result($stmt);
var_dump($rows->num_rows);
}
这里只返回结果(数组的长度)
  • 以下返回关联数组
$conn = new mysqli('127.0.0.1','root','1234567','testdb');
$stmt = mysqli_stmt_init($conn);
$sql = "select * from user_auth_v where userid = ?";
$bindret = mysqli_stmt_prepare($stmt,$sql);
//$link = 'gd/list';
$userid = 'cpc';
if ($bindret)
{
mysqli_stmt_bind_param($stmt,'s',$userid);
mysqli_stmt_execute($stmt);
$rows = mysqli_stmt_get_result($stmt);
var_dump($rows->num_rows);
while ($row=$rows->fetch_array(MYSQLI_ASSOC))
{
var_dump($row);
echo "<br>";
}
}

mysqli在php7中的使用的更多相关文章

  1. PHP7中我们应该学习会用的新特性

    PHP7于2015年11月正式发布,本次更新可谓是PHP的重要里程碑,它将带来显著的性能改进和新特性,并对之前版本的一些特性进行改进.本文小编将和大家一起来了解探讨PHP7中的新特性. 1. 标量类型 ...

  2. PHP7中的数据类型

    PHP中变量名→zval,变量值→zend_value.其变量内存是通过引用计数管理的,在PHP7中引用计数在value结构中. 变量类型: 头文件在PHP源码 /zend/zend_types.h ...

  3. 10件在PHP7中不要做的事情

    10件在PHP7中不要做的事情 1. 不要使用mysql_函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mys ...

  4. 什么是PHP7中的孤儿进程与僵尸进程

    什么是PHP7中的孤儿进程与僵尸进程 基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法 ...

  5. PHP7中Protobuf的安装使用

    PHP7中Protobuf的安装使用 写这篇文章的缘由是最近在关注RPC框架序列化的一些原理.但是在安装Protobuf的时候,发现网上的教程都太老了,加上目前Protobuf官方已经支持PHP了,不 ...

  6. PHP7中session_start 使用注意事项,会导致浏览器刷时页面数据不更新

    //PHP7中session_start 使用注意事项, session_start([ 'cache_limiter' => 'private', //在读取完毕会话数据之后马上关闭会话存储文 ...

  7. php7中异常

    php7中新增异常错误处理 在PHP7之前的版本,对于一些错误异常是没有办法捕获的. php7中新增throwable接口,可以用来捕获一些错误 Exception,Error这实现了Throwabl ...

  8. PHP7中的异常与错误处理

    PHP 中的 Exception, Error, Throwable PHP 中将代码自身异常(一般是环境或者语法非法所致)称作错误 Error,将运行中出现的逻辑错误称为异常 Exception 错 ...

  9. PHP7中异常与错误处理与之前版本对比

    PHP7中异常与错误处理与之前版本对比 先上代码 ECHO PHP_VERSION.PHP_EOL; function add (int $left,int $right){ return $left ...

随机推荐

  1. @lazy注解

    默认情况下,Spring会在应用程序上下文的启动时创建所有单例bean 主要针对单实例 Bean ,容器启动时不创建对象,仅当第一次使用Bean的时候才创建 @Lazy @Bean public Pe ...

  2. 非常好的一个JS代码(RelativePosition.js)

    var RelativePosition = function(){ function getLeft( align, rect, rel ){ var iLeft = 0; switch (alig ...

  3. python 爬虫 urllib模块 发起post请求

    urllib模块发起的POST请求 案例:爬取百度翻译的翻译结果 1.通过浏览器捉包工具,找到POST请求的url 针对ajax页面请求的所对应url获取,需要用到浏览器的捉包工具.查看百度翻译针对某 ...

  4. java多线程的优先性问题

    多线程的优先级问题 重点:理解线程优先级的继承性.规则性.随机性 线程的优先级 在操作系统中,线程可以划分优先级,.尽可能多的给优先级高的线程分配更多的CPU资源. 线程的优先级分为1~10,有三个预 ...

  5. Linux在线安装MongoDB

    Mongo官网安装地址: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 以MongoDB3.4为例 1.创建 ...

  6. Java中的异常处理try catch(第八周课堂示例总结)

    异常处理 使用Java异常处理机制: 把可能会发生错误的代码放进try语句块中. 当程序检测到出现了一个错误时会抛出一个异常对象. 异常处理代码会捕获并处理这个错误. catch语句块中的代码用于处理 ...

  7. IDEA2018.2.6激活(可用)

    破解插件下载: 链接:https://pan.baidu.com/s/1j2_kEm_Akcph6Qb8hr6soQ 提取码:hv64 将下载包放入bin文件夹下,修改bin中的两个文件 idea.e ...

  8. thinkPHP验证码报错: Call to undefined function captcha_src()

    问题出现的原因可能有: 1. captcha扩展缺失: 2. captcha扩展与当前thinkPHP版本不兼容. thinkPHP6.0以下版本只能使用 captcha2.0以下版本,不支持2.0版 ...

  9. python-day10(正式学习)

    目录 字符编码 计算机基础 文本编辑器存取文件的原理 python解释器执行py文件的原理 python解释器与文本编辑的异同 字符编码介绍 字符编码的分类 乱码分析 总结 文件操作 三种基本操作 文 ...

  10. Java线程和进程

    一.线程 1.什么是线程: 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.一个进程至少包含一个线程,也可以多个,线程属于进程. 2.Java中线程经历的四个 ...