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. Java内存模型(三)原子性、内存可见性、重排序、顺序一致性、volatile、锁、final

          一.原子性 原子性操作指相应的操作是单一不可分割的操作.例如,对int变量count执行count++d操作就不是原子性操作.因为count++实际上可以分解为3个操作:(1)读取变量co ...

  2. 牛客小白月赛12-C(欧拉筛解积性方程)

    题目链接:https://ac.nowcoder.com/acm/contest/392/C 题意:给定n,求: 思路:令res[i]=iN  (%MOD),因为xn是一个积性函数,即(x*y)n=x ...

  3. axios模块封装和分类列表实现

    这个作用 主要还是为了让代码更加的,清晰. 不要全部都放到  created(){}  这个方法下面.把这些代码全部抽离出去. 这里就只是去调用方法.1. src 目录下,新建文件夹---  rest ...

  4. H.Holy Grail ( floyd )(The Preliminary Contest for ICPC Asia Nanjing 2019)

    题意: 给出一个有向图,再给出6条原来不存在的路径,让你在这6条路径上添加一个最小的数,使图不存在负环. 思路: 直接6遍 floyd 输出就行了. #include <bits/stdc++. ...

  5. 使用Keras基于RCNN类模型的卫星/遥感地图图像语义分割

    遥感数据集 1. UC Merced Land-Use Data Set 图像像素大小为256*256,总包含21类场景图像,每一类有100张,共2100张. http://weegee.vision ...

  6. react生态常用库分类

    一. web项目 1.脚手架 create-react-app 自动安装react.react-dom 2.核心 react.react-dom 3.路由 react-router.react-rou ...

  7. Zabbix-自带监控项与Kye

    开启主机自动发现 ⦁选择配置 ->自动发现 ->创建自动发现->ip范围必须连续,不连续的话逗号分开 ⦁更新间隔 -> 2s ->更新 ⦁检查 -> 选择新的 -& ...

  8. this —— javascript

    目录 为什么要讨论this this是什么 如何改变this的指向 箭头函数中的this 为什么要讨论this 代码一: function fun1(){ var aa = 'I am aa'; co ...

  9. TensorFlow入门——安装

    由于实验室新配了电脑,旧的电脑就淘汰下来不用,闲来无事,就讲旧的电脑作为个人的工作站来使用. 由于在旧电脑上安装的是Ubuntu 16.04 64bit系统,系统自带的是Python 2.7,版本选择 ...

  10. Linux查看修改文件句柄数

    SuSE 11SP3 默认句柄数是1024 1.查看linux的文件句柄数 ulimit -a 2.修改文件句柄数 ①ulimit -n 65535②修改linux系统参数.vi /etc/secur ...