IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP学习笔记(四) -> 正文阅读

[PHP知识库]PHP学习笔记(四)

分析理解PHP+MySQL环境中标准的参数化查询方式的源码

<?php
echo '<br/>';//相当于C语言中的"\n",即换行+顶格
error_reporting(E_ERROR);//报告错误为E_ERROR
$mysqli = new mysqli("localhost","root","","sqli");//假定数据库用户名:root,密码为空,数据库:sqli 
    if($_GET['user'] && $_GET['password']) {
        $username = $_GET['user'];
        $password = $_GET['password'];
        $query = "SELECT filename,filesize FROM preuser WHERE (name = ?) and (password = ?)";
        $stmt = $mysqli->stmt_init();
        if ($stmt->prepare($query))
        {
            $stmt->bind_param("ss",$username,$password);
            $stmt->execute();
            $stmt->bind_result($filename,$filesize);
            while ($stmt->fetch()) {
                printf ("%s : %d\n",$filename,$filesize);
            }
            $stmt->close();
        }
    }
$mysqli->close();

相关函数
mysqli_stmt_get_result() - 从准备好的语句获取结果集
mysqli_stmt_bind_param() - 将变量绑定到准备好的语句作为参数
mysqli_stmt_execute() - 执行准备好的查询
mysqli_stmt_fetch() - 从准备好的语句中获取结果到绑定变量中
mysqli_prepare() - 准备执行一个SQL语句
mysqli_stmt_prepare() - 准备要执行的SQL语句
mysqli_stmt_init() - 初始化一条语句并返回一个用于mysqli_stmt_prepare(调用)的对象
mysqli_stmt_errno() - 返回最近的语句调用的错误代码
mysqli_stmt_error() - 返回最后一条语句错误的字符串描述

error_reporting()函数
定义:
error_reporting() 函数规定报告哪个错误。
该函数设置当前脚本的错误报告级别
该函数返回旧的错误报告级别

语法:

error_reporting(report_level)

参数:
report_level 可选。规定当前脚本的错误报告级别。值数字和常量名都能接受,但是,考虑未来的 PHP 版本的兼容性,推荐使用常量名

报告级别:

常量描述
1E_ERROR运行时致命的错误。不能修复的错误。停止执行脚本。
2E_WARNING运行时非致命的错误。没有停止执行脚本。
4E_PARSE编译时的解析错误。解析错误应该只由解析器生成。
8E_NOTICE运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。
16E_CORE_ERRORPHP 启动时的致命错误。这就如同 PHP 核心的 E_ERROR。
32E_CORE_WARNINGPHP 启动时的非致命错误。这就如同 PHP 核心的 E_WARNING。
64E_COMPILE_ERROR编译时致命的错误。这就如同由 Zend 脚本引擎生成的 E_ERROR。
128E_COMPILE_WARNING编译时非致命的错误。这就如同由 Zend 脚本引擎生成的 E_WARNING。
256E_USER_ERROR用户生成的致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_ERROR。
512E_USER_WARNING用户生成的非致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_WARNING。
1024E_USER_NOTICE用户生成的通知。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_NOTICE。
2048E_STRICT运行时的通知。PHP 建议您改变代码,以提高代码的互用性和兼容性。
4096E_RECOVERABLE_ERROR可捕获的致命错误。这就如同一个可以由用户定义的句柄捕获的 E_ERROR(见 set_error_handler())。
8191E_ALL所有的错误和警告的级别,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 将作为 E_ALL的一部分)。

mysqli_stmt_init() 函数
定义:
mysqli_stmt_init() 函数初始化声明并返回 mysqli_stmt_prepare() 使用的对象。

语法:

mysqli_stmt_init(connection);

参数:
connection 必需。规定要使用的 MySQL 连接。

技术细节
返回值: 返回一个对象。
PHP 版本: 5+

stmt_bind_param()函数

stmt_bind_param( 'ss', $username, $password);

stmt_bind_param($stmt, ‘sss’, $firstname, $lastname, $email);
该函数绑定参数查询并将参数传递给数据库。第二个参数是 “ss” 。s字符告诉 mysql 参数是字符串。
可以是以下四种参数:
i - 整数
d - 双精度浮点数
s - 字符串
b - 布尔值
每个参数必须指定类型,来保证数据的安全性。通过类型的判断可以减少SQL注入漏洞带来的风险

stmt_bind_result()函数
定义
将变量绑定到准备好的语句以存储结果

版本
5+

语法

mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

参数

参数必需的描述
stmt由 mysqli_stmt_init() 返回的 statement 标识。
var1要绑定的变量。
更多变量

返回值
成功时返回 TRUE, 或者在失败时返回 FALSE

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 10:56:29  更:2021-08-03 10:57:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 12:03:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码