php基础系列----10php通过mysqli扩展操作mysql数据库

PHP操作数据库 在项目开发中,执行添加数据操作时,需要拼接SQL语句。MySQLi提供了预处理方式,实现SQL语句与数据的分离,解决了SQL注入的问题,本节将介绍预处理的具体操作。当PHP执行SQL语句时,传统的SQL语句处理方式是将SQL语句和要发送的数据拼接在一起,使用mysqli_query()函数执行读操作时,返回的是一个资源类型的结果集,需要对结果集作进一步处理,获取结果集中的数据。('Tom', '男'), ('Lucy', '女'), ('Jimmy', '男'), ('Amy', '女'); 阅读详情

mysqli简介:

    1:是mysql的扩展模块;通过mysqli访问mysql数据更安全,支持预处理,因此可以避免sql注入,更易维护;
    2:提供了面向对象和面向过程的接口,而mysql_extension只能通过面向过程接口访问;
    3:mysql是非持久连接函数,脚本执行完毕即断开连接;而mysqli则是持久连接;

使用mysqli面向对象接口访问数据库;

1:打开mysqli扩展模块;

    php.ini文件: extension = php_mysqli.dll;//去掉前面的分号

2:连接数据库:

            $mysqli = new mysqli("localhost","username","passwored",'daname');
            或:
            $mysqli = new mysqli();
            $mysqli->connect("localhost","username","passwored",'daname');

3:连接错误处理:

        connect_error():返回mysql连接错误的错误信息
        connect_errno():返回mysql连接的错误代码;
            if($link->connect_error()){}
            if($link->connect_errno()){}

4:设置字符编码:

$mysqli->set_charset("utf-8");

5:执行sql语句:

            $result = $mysqli->query($sql);
            //如果是增删改语句返回true/false;
            //如果是查询语句。执行成功返回结果集,执行失败返回false;

6:处理结果集:

//将结果集包装成对象;
            1:$result->fetch_object();

            //将结果包装成数组;
            2:$result->fetch_array();

            //将结果包装成数组;
            3:$result->fetch_assoc();

            //将结果包装成数组;
            4:$result->fetch_row();

            6:跳转结果集指针:
             $result->data_seek()//把结果集指针跳转到指定条;

            //解析的时候必须要放置在循环中,否则将只能取出满足条件的第一条数据

7:获取其他信息:

            1:$result->num_rows()//:获取结果集的总行数;
            2:$result->num_fields()//:获取结果集的字段数;

            3:$result->affected_rows()//:获取受影响的行数;

            4:$reslut->fetch_fields()//:获取某行所有字段并作为数组;

            5:$result->data_seek()//:移动数据指针,默认是在第一列;
            6:$result->field_tell() //获取当前指针的位置;
            7:free_result()     //释放结果内存。

8:执行多条查询语句:

                $_sql .="SELECT * FROM tg_user;" ;
                $_sql .="SELECT * FROM tg_photo;" ;
                $_sql .="SELECT * FROM tg_article" ;
                // 开始执行多条 SQL 语句
                if ( $_mysqli->multi_query( $_sql )) {

                //开始获取第一条 SQL 语句的结果集
                $_result= $_mysqli ->store_result();

                print_r($_result ->fetch_array());

                //将结果集指针移到下一个
                $_mysqli->next_result();

                $_result= $_mysqli ->store_result();
                print_r($_result ->fetch_array());

                $_mysqli->next_result();

                $_result= $_mysqli ->store_result();

                print_r($_result ->fetch_array());
                } else {
                echo'sql 语句有误! ' ;
                }

9:获取和数据库本身有关的信息:

        $mysqli->get_charset()     //返回字符集对象。
        $mysqli->get_client_info()     //返回 MySQL 客户端库版本。
        $mysqli->get_client_stats()    //返回有关客户端每个进程的统计。
        $mysqli->get_client_version()  //将 MySQL 客户端库版本作为整数返回。
        $mysqli->get_connection_stats()    //返回有关客户端连接的统计。
        $mysqli->get_host_info()   //返回 MySQL 服务器主机名和连接类型。
        $mysqli->get_proto_info()  //返回 MySQL 协议版本。
        $mysqli->get_server_info()     //返回 MySQL 服务器版本。
        $mysqli->get_server_version()  //将 MySQL 服务器版本作为整数返回。

10:事务:

mysqli事务:


        //1:关闭自动提交:
            $mysqli->autocommit(false);
        //2:执行sql语句:
            $resul1 = $mysqli->query($sql1);
            $resul2 = $mysqli->query($sql2);
            $resul3 = $mysqli->query($sql3);
        //3:提交
            if($resul1&&resul2&&resul3){
                $mysqli->commit();
            }else{
                $mysqli->rollback();
            }
        //4:事务执行完成开启自动提交:
            $mysql->autocommit(true);
php基础系列:PHP连接MySQL数据库用到的三种API 参考自php手册。本文没有太大意义,仅为方便自己上网查阅。 mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数mysql_client_encoding — 返回字符集的名称mysql_close — 关闭 MySQL 连接mysql_connect — 打开一个到 MySQL 服务器的连接mysql_create_db — 新建一个 MySQL 数据库 阅读详情

相关推荐

(十二)php参考手册---MySQLi函数(php操作MySQL)

一、php数据库操作1.连接到指定数据库 二、php5 mysqli函数

fight_tianer的博客 2370

PHP操作Mysql数据库

下面使用参数绑定形式的预准备操作执行添加操作。如果 GET 参数如下将产生 SQL 注入。下面使用参数绑定来执行预准备的查询操作。使用问号占位符是另一种使用预准备的方式。每次获取结果中的一条数据。使用占位符来执行添加操作。方法设置错误处理方式。

代码炼金术 6202

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6396

mysqlli php7.0_mysqli扩展无法在PHP7下升级问题的解决

前言这几天在想部署一个OAuth服务,找了一个PHP的开源实现,由于要求的PHP版本比较高,就打算在自己的ECS上(PHP7.1)先测试下,没想到遇到了一些问题。首先发现mysqli扩展没有装(mysql扩展在PHP7中已经废弃了),原来PHP7是使用ondrej/php源安装的,可运行 apt-cache search php7 | grep mysql 居然发现没有任何的mysql扩展,包括连...

weixin_39598796的博客 233

从涡流求解器到瞬态场:Maxwell 3D里无线充电仿真,选对求解器能省一半计算时间

本文深入探讨了Maxwell 3D在无线充电仿真中涡流求解器与瞬态求解器的选择策略,帮助工程师优化计算效率与精度。通过对比分析两种求解器的适用场景、性能差异及实战技巧,揭示如何根据频率特性、材料非线性和动态过程需求做出精准选择,可节省高达50%的计算时间。特别针对3D线圈模型的无线充电系统设计提供了专业建议。

weixin_26861329的博客 232

3D数学-动力学

3D数学-11-动力学 旋转运动学 二维旋转动力学 首先我们考虑最简单的情况: 我们将F施加在圆盘(忽略质量)上的一个点(质量为m)上 图中:F为我们施加的力,O是枢轴原点。 通过基本的运算,我们可以得到 F'= F*sinθ 那么切向加速度 a = F'/ m 切向加速度是线性速度的加速度,我们通过除以半径获得角加速度 α = a / r 现在,我们换一种方式,那就是通过杠杆臂的方式去施加力 为了能够计算出m点的角加速度,我们需要引入一个概念:扭矩 他的理解类似于力矩,公式如下 τ = Flsi

韩天衣的博客 2285

php使用mysqli连接mysql数据库_PHP使用mysqli扩展连接MySQL数据库

1.面向对象的使用方式$db = new mysqli('localhost', 'root', '123456', 'dbname');如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库$db->select_db('dbname');$query = "SELECT * FROM user WHERE uid=4";$result = $db->query($query...

weixin_39926193的博客 299

IAR9.4报错之编码方式

IAR9.40编码方式错误导致的报错

qq_36081075的博客 2626

php笔记(9)——数据库操作与mysqli扩展

数据库扩展Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。mysql扩展进行数据库连接的方法:(该库已不推荐使用)$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');mysqli扩展:$link = mysqli_connect('mysql_host',

君君的专栏 4162

电磁兼容标准体系解析:从基础到认证的完整指南

本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。

weixin_29294975的博客 355

Python实战:用MOOTDX库轻松抓取股票分时数据并绘制专业图表(附完整代码)

本文详细介绍了如何使用Python的MOOTDX库获取股票分时数据,并通过Pandas进行数据清洗与VWAP计算,最后利用Matplotlib绘制包含价格线、均线和成交量的专业分时图。文章提供了从环境搭建、数据获取到可视化呈现的完整代码,帮助读者快速构建本地化的股票分时数据分析工具。

weixin_29041195的博客 473

php使用mysqli扩展库完成对mysql操作的案例

编写一个程序,从表中读取数据,打印在网页中1、环境搭建(php、mysql、apache)2、启用mysqli扩展库1、在php.ini文件中去配置mysqli扩展库。 找到php_mysqli.dll,取消前面的注释 ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll exte...

你还有好多未完成的梦,你有什么理由停下? 1416

Wider Face+YOLOV7人脸检测

使用Wider Face数据集训练YOLOV7

chen_znn的博客 8407

【深度学习】PHP操作mysql数据库总结

PHP与MySQL的连接

zgscwxd的博客 2727

链接文件及功能安全:S32K3如何将FLASH驱动放到RAM里面、RAM如何实现软件复位数据不丢失操作。

在通过RTD的SDK也好MCAL也好,始终存在一个问题,生成的代码除了看门狗模块,默认都是放在flash里面,按照正常逻辑来看没啥大的问题,思考一个问题:Flash放在0x100的位置,但是此时我们要操作0x100怎么办?那肯定不允许啊,但是将flash的驱动放在RAM里面就可以避免这个问题的产生。Flash的特性:PF0能操作PF1,当然PF1也能操作PF0的,以此类推,只要不操作自身,想怎么玩都可以。这也是一个物理特性吧。

梦想技术家 2310

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PHP的MySQLi扩展

什么是PHP的MySQLi扩展? ——PHP的MySQLi扩展又称为MySQL增强扩展,mysqli扩展在PHP5及以后版本中包含。 MySQLi扩展相对于MySQL扩展的优势 ——基于面向过程和面向对象的使用 ——支持预处理语句 ——支持事务 MySQLi扩展安装 ——配置PHP配置文件,开启php_mysqli.dll扩展 (1)打开php.in...

w_l_k_i的博客 906

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

php操作mysql数据库的扩展有哪些_8.PHP操作MySQL数据库(Mysqli扩展)

思考:如果数据库的操作都是需要我们手动去调用客户端发送指令,那么这样的操作有什么意义呢?引入:手动通过客户端操作MySQL数据库,只是我们学习SQL的一种手段。要实现数据库的自动调用,就需要客户端能够将事先组织好的SQL指令自动的根据需求发送给服务器去执行。这个使用就需要利用到PHP来充当客户端,再配合Apache调用PHP模块来共同协作完成。PHP充当MySQL的客户端PHP能够组织SQL指令并...

weixin_29062671的博客 1274

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

PHP中MySQLi的配置&PHP使用mysqli连接mysql的方法

PHP中MySQLi的配置&PHP使用mysqli连接mysql的方法 目录PHP中MySQLi的配置&PHP使用mysqli连接mysql的方法Mysqli的配置PHP与Mysql的连接(MySQLi) 我们常常用PHP连接mysql数据库,方便,快捷。 其中可以用Mysqli、PDO等方法连接(曾经有一个时候,可以用Mysql类的方法连接,现在废除了) 而新手常常遇到不会连接的疑问。 这里我给大家整理了PHP如何用Mysqli连接mysql 截止此博客发布时间为2022年5月2日 最适

m0_61594366的博客 8097

PHP的MySQL扩展操作

连库基本操作 连接到数据库服务器 mysql_connect(服务器地址, 用户名, 密码); 设置连接编码 1). 形式1:mysql_query(“set names XXX”) 2). 形式2:mysql_set_charset(“XXX”) 3). 怎么确定要使用何种编码 选定要使用的数据库 增删改操作 查询操作 相关函数 新闻管理——准备工作 新闻管理——新增 新闻管理——显示 新闻管理——删除 新闻管理——修改 ...

eyes++的博客 2098

简要谈谈php中mysql,mysqli,mysqlnd,pdo到底是什么.

名词解释:最开始的初学者,往往搞不清mysqli,mysqlnd,pdo到底是什么,下面先直接贴出最直观的名字吧。 MYSQL:This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. MYSQLI: MySQL Improved Extension MySQLND: My

感谢那一段回忆里的疯狂,在我们最无谓的岁月闪着光。 2万+

【PHP】MySQL简介与MySQLi函数(含PHP与MySQL交互)

PHP 通过内置函数库 mysqli 进行 MySQL 数据库编程的步骤如下: 1. 建立与 MySQL 数据服务器的连接(使用 mysqli_connect() 函数); 2. 选择要进行操作的数据库(使用 mysqli_select_db() 函数); 3. 执行数据库的操作,如数据的添加删除等(使用 mysqli_query() 函数); 4. 关闭与 MySQL 数据库服务器进行的连接(使用 mysqli_close() 函数);

2301_76435948的博客 1513

PHP 5 MySQLi 函数

MySQLi 函数允许您访问 MySQL 数据库服务器。MySQLi 扩展被设计用于 MySQL 4.1.13 版本或更新的版本。

m0_72763148的博客 1129

如何使用 MySQLi 扩展连接 MySQL 数据库?

报告将从环境配置与扩展启用开始,详细介绍两种主要的连接风格(面向对象与过程式),并深入讨论关键的连接配置,如字符集设定、持久连接和 SSL/TLS 加密。当 PHP 应用与数据库服务器不在同一台机器上,或通过不受信任的网络通信时,对连接进行加密是保障数据安全的关键。持久连接是指在 PHP 脚本执行完毕后,与数据库的连接不会立即关闭,而是被放入一个连接池中,供后续的请求复用。需要注意的是,持久连接虽然能提升性能,但也可能导致连接数耗尽、状态污染等问题,需要谨慎使用。健壮的错误处理是构建可靠应用程序的基石。

破损的天堂鸟博客 1171

php mysqli 扩展学习

php5开始,提供了一个操作mysql数据库的新的扩展:mysqli。支持操作mysql4以上的mysql数据库。相比mysql扩展,mysqli扩展更加高效,稳定和安全

字符集-utf8 1040

php mysqli教程,PHP基础教程十四之使用MySqli操作数据库

前言在实际的开发中,PHP都是会和数据库一起使用的,因为在后台需要有太多的数据进行保存,而数据库就是一种很好的保存数据的地方,我们PHP开发用到的数据库是关系型数据库mysql,而PHP和mysql数据库只有连接,我们才能通过php代码对数据库进行操作。相关mysql视频教程推荐:《mysql教程》MySqliPHP的开发离不开数据库,而在PHP中可以通过MySQLi连接数据库的。但是MySQLi...

weixin_28878311的博客 1121

php通过mysqli操作mysql

/Array ( [0] => 3 [id] => 3 [1] => 张三 [name] => 张三 [2] => 123456 [passwd] => 123456 [3] => 2018 [logindate] => 2018 )//Array ( [0] => 3 [id] => 3 [1] => 张三 [name] => 张三 [2] => 123456 [passwd] => 123456 [3] => 2018 [logindate] => 2018 )

raslee的专栏 1201
上一篇: php基础系列----9php通过mysql扩展操作mysql数据库
下一篇: php基础系列----11php通过mysqli扩展操作mysql数据库
nextli
博客等级 码龄11年 0粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值