博客列表 >php基础知识(mysqli的查询操作)--2018年9月4日11:26:18

php基础知识(mysqli的查询操作)--2018年9月4日11:26:18

Hi的博客
Hi的博客原创
2018年09月04日 11:29:23679浏览

对于mysqli的数据库查询操作有许多方法,我用的方法是面向对象的查询操作.

以下是我的代码.

实例

<?php
require "config.php";//连接存放数据库的信息
error_reporting(E_ALL ^E_WARNING);//使用函数忽略告警
$mysqli = new mysqli($db['host'],$db['user'],$db['pass'], $db['name']);//使用数组进行数据库的连接,
if ($mysqli ->connect_errno) {//测试数据库是否连接成功
    die('连接错误'.$mysqli->connect_errno.': '. $mysqli->connect_error);//连接失败的话返回错误信息
}//else{
//    exit('连接成功');//连接成功的时候要注销掉
//};

$mysqli->set_charset($db['charset']);//设定数据库的默认编码
echo "<hr>";
echo "<h3>MySQLi的查询操作</h3>";


//准备SQL语句,其中?是占位符
$sql = "SELECT `id`,`email`  FROM `user` WHERE `email` LIKE  ? ";//;LTKE 配合通配符使用

// 创建预处理对象
$stmt = $mysqli->stmt_init();

if ($stmt->prepare($sql)) {
    //绑定参数
    $stmt->bind_param('s', $email);
/*
 * 1. 该函数绑定了 SQL 的参数,且告诉数据库参数的值。 第一个值是参数填的是数据的类型。i 字符告诉数据库该参数为整数型。

参数有以下四种类型:

i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(布尔值)

每个参数都需要指定类型。
 */
    //设置参数
    $email = '%io%';//邮箱包含io的,%是通配符

    if ($stmt->execute()) {//执行这条语句

        //一次性获取完所有的结果集并放到php缓存区
        $stmt->store_result();

        //将结果集中的列绑定到变量上
        $stmt->bind_result($id, $email);

        //结果集是否不为空,只有不为空的时候才遍历
        if ($stmt->num_rows > 0) {
            // 循环遍历结果集
            // fetch()每次获取一条记录,并将指针自动下移
            while ($stmt->fetch()) {
                echo '<p>id:'.$id.'---邮箱:' .$email.'</p>';
            }
        } else {
            exit('<p>当前表中没有数据</p>');
        }

        // 释放结果集
        $stmt->free_result();
    } else {
        //返回执行阶段的出错信息
        exit($stmt->errno. ': ' . $stmt->error);
    }
} else {
    //返回sql语句检测阶段的出错信息
    exit($stmt->errno. ': ' . $stmt->error);
}


//注销stmt对象
$stmt->close();

//关闭连接
$mysqli->close();

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议