【PHP基础知识】——数据库MySQL操作(上)
来源:互联网 发布:mac系统 ps 编辑:程序博客网 时间:2024/05/22 05:13
一、前言
MySQL数据库是基于Linux操作系统的开发出来的数据库,因为Linux是开源代码,MySQL也是免费开源码的数据库。其支持多种语言连接,能满足中小型企业对数据库的需求,使得其能在数据库界占有一席之地。MySQL+PHP组成的最佳搭档,是目前最为成熟、稳定、安全的企业级WEB开发技术,广泛应用于大型站点。其成熟的架构、稳定的性能、嵌入式开发方式、简洁的语法,使得系统能迅速开发。今天我们就来捋一捋PHP操作MySQL的一些知识与方法的总结。
二、Linux下PHP支持数据库操作的配置
1、安装好MySQL数据库,可在官网下载(https://www.mysql.com/cn/downloads/),按网上大多数的教程安装(一般按经典配置安装即可)。2、安装PHP支持MySQL:
①未安装PHP情况:下载源码包编译安装PHP时在安装配置参数./configure后面加上
--with-mysql=<MySQL头文件路径> --with-zlib-dir=<MySQL库文件路径> 编译安装即可;
并在PHP.ini配置支持扩展即可:
extension=mysql.so
extension=mysqli.so
3、配置完成后可以在phpinfos()里面看到mysql的支持已经启用。
注:推荐使用mysqli,mysql扩展已经在PHP5.5及以上版本中过期废弃。
三、PHP操作数据库的方法
1、连接数据库:①$conn=new mysqli($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']);
成功返回资源类型的句柄,失败返回false;
②也可以使用面向过程的方式连接,对应函数为:mysqli_connect():$conn=mysqli_connect($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']);
2、设置字符编码格式:mysqli_set_charset()方法:mysqli_set_charset($conn,$dbConf['charSet']);
3、选择或改变执行操作的数据库:mysqli::select_db()方法
4、数据查询操作:
①直接查询方式:mysqli::query()方法;
②预处理方式(推荐):步骤:$sql='SELECT * from `t1` as t WHERE id2>?';
通过prepare方法预处理sql语句:$stmt=$conn->prepare($sql);如果返回值时false则说明语句有问题;
绑定参数预处理语句需查询传入的参数:bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
$stmt->bind_param('i',$value);//i表示int型,$value必须是变量类型,可在接下来为其赋值;
$value = 2; //赋值
$stmt->execute(); //执行
$stmt->bind_result($id1, $id2); //将结果绑定发到指定的参数上
注:建议通过第二种(预处理方式)进行操作,php的MySQL预处理语句可以过滤掉很多外部输入的不可信任的变量和注入攻击。
5、数据库查询结果常用格式化方式:
①mysqli_stmt::bind_result()——将查询的字段结果以数组形式绑定在n个参数变量上(n为查询语句的返回字段数);
②mysqli_result::fetch_array(<返回类型>)——按照返回类型每次返回key=>value格式的数组(返回类型有MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH.分别表示key是数字索引、数据库字段索引和两者皆返回);
③mysqli_result::fetch_assoc()——等同于mysqli_result::fetch_array(MYSQLI_ASSOC),返回字段索引;
④mysqli_result::fetch_row()——等同于mysqli_result::fetch_array(MYSQLI_NUM),返回数字索引;
⑤mysqli_result::fetch_object()——每次返回一条对象类型的查询结果;
⑥mysqli_result::$field_count()——返回执行的结果条数;
6、数据库插入和更新操作:
$sql = "insert into table user(id,name) values(?,?)";//或者执行update语句
$stmt = $mysqli->prepare($sql);//同样采用预处理语句处理
$id=null;//数据库设置是primary key auto_increment
$name='tester';
$stmt->bind_param("is",$id,$name); //绑定参数(需要插入的数据),并执行。"is"按顺序代表插入数据的数据类型;
$res = $stmt->execute();//执行语句,返回值为布尔类型
7、返回插入或更新后的最新id:
mysqli_stmt::$insert_id()——用于插入的时候返回最新id;
mysqli_stmt::$affected_rows()——用于更新后返回影响行数;
8、关闭数据库连接的操作流程:
$stmt->free_result();//释放结果
$stmt->close();//关闭预编译的指令.
$conn->close();//关闭连接
虽然PHP也有垃圾回收机制,但是习惯手动释放资源和内存会更保险。
9、其他操作
PHP同样可以支持MySQL数据库的事务操作:
①mysqli::autocommit()——开启或关闭数据库自动提交事务的方法;
②mysqli::commit()——手动提交一个事务的方法;
③mysqli::rollback()——回滚一个当前事务;
10、错误类函数:
①mysqli::$connect_errno()——连接错误码;
②mysqli::$connect_error()——连接错误信息;
③mysqli::$error()——返回最近的一次错误信息;
④mysqli::errno()——返回最近一次错误码;
四、其他常用方法介绍
后续再详谈另外一种数据库连接方式,即PHP的PDO连接数据库方式。
阅读全文
1 0
- 【PHP基础知识】——数据库MySQL操作(上)
- 【PHP基础知识】——数据库MySQL操作(下)
- php操作数据库—>创建mysql数据库连接
- Python基础知识——对mysql数据库的操作
- MYSQL数据库基础知识及操作
- PHP 操作mysql数据库
- PHP mysql 操作数据库
- php操作mysql数据库
- php操作mysql数据库
- PHP操作MySQL数据库
- PHP操作MySQL数据库
- PHP操作mysql数据库
- php操作mysql数据库
- PHP操作Mysql数据库
- php操作mysql数据库
- php操作数据库mysql
- PHP操作数据库MYSQL
- 渗透————PHP+MYSQL数据库(上)
- 2017可穿戴市场会如何?改变和突破或成刚需
- 不久之后,人工智能或将能够检测皮肤癌变
- 在通往VR内容的道路上,音乐将成为一项重要助力
- AR如何为产业链打开“电子眼”
- IP难理解?“美国三片”让你秒懂什么是IP
- 【PHP基础知识】——数据库MySQL操作(上)
- 记戴尔科技峰会2017
- 存储领域下一个核心技术是什么?
- Microsemi招聘信息发布
- 21号冬瓜哥有两场活动期待您到来
- 15日冬瓜哥主持Microsemi专场展会
- NAS,近来可好?
- OptaneP4800X的技术启示
- 浪潮IPF17上展示的黑科技