• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
雨水是浪漫的诗人
博客园    首页    新随笔    联系   管理    订阅  订阅
操作数据库

学习资料

http://php.net/manual/zh/book.mysqli.php

本文主要介绍 mysqli,所以资料是mysqli的手册地址。

准备工作

  • 安装好你的mysql(xampp默认已经解决)
  • 学会使用管理软件(phpmyadmin或navicat)
  • 创建一个数据库

本文使用的数据库名

数据库:sodevel

1.连接数据库

想操作数据库,必须先与其创建连接关系。

mysql

比较古老的连接方式,虽然目前还能用,但原则上禁止使用。

PDO

使用抽象层连接,可兼容多种数据库,有用,但非本文主题。

mysqli

mysql的强化版本,本文主要讲解。

mysqli

必须开启mysqli扩展后才能使用,默认xampp已经帮你做好,该扩展提供了很多类,我们使用其中的两个 mysqli 和 mysqli_result。

连接语法

$db = new mysqli('localhost', 'root', '123456', 'sodevel');

$db 对象,所有后续操作都基于该对象。

mysqli 扩展内置的类,我们拿来就用,具体的属性和方法要看手册。
localhost 数据库的IP地址,这个代表本机
root 连接账号
123456 连接密码
sodevel 要连接的数据库名称

... 还有其他的可选参数,本文略过

判断连接成功与否

if( $db->connect_errno > 0 ){
    echo "错误码:".$mysqli->connect_errno;
    echo "提示语:".$mysqli->connect_error;
    exit;
}

$db->connect_errno 错误代码,无错误的话 = 0
$mysqli->connect_error 错误信息,出错问题的文字说明

如果以上没有问题,那么你现在就可以进行数据操作了

2.执行数据库查询

与数据库做任何交互,都必须通过 SQL语句,本章先简单介绍几个例子。

基本语法

$is = $db->query("SQL语句");

$db 上一节连接数据库后得到的对象
query() 执行对象中的方法。
SQL语句,计划让数据库执行的命令语句

$is 在增删改的操作中,得到一个 布尔值,true 表示操作成功,false 表示操作失败。

乱码问题

如果插入中文数据会乱码,那么连接数据库之后,应该立刻执行这样一段语句。

//定义当前连接,使用UTF8编码,你也可以使用GBK等
$db->query("SET NAMES UTF8");

3.执行数据库语句(来源:https://www.sodevel.com/mysql)

  • 增,向数据库写入数据
  • 删,删除已有数据
  • 改,修改数据
  • 查,从数据库读取数据

 

准备工作

创建数据表:users
id(自增主键)usernamepassword
1 波比 123456
2 张三 123456

SQL 的基本概念

SQL 其实就是有格式的字符串,数据库来解析这个字符串,确认你的命令。

SQL语句的顺序很重要,不要随便调换!!

增

向数据库中写入数据

语句

insert into users (`username`,`password`) values ('name','passwd')

insert into 关键字,表示插入数据

users 目标数据表

(username,password) 目标字段

values 关键字

('name','passwd') 每个字段对应的值

在PHP中执行

$sql = "insert into users (`username`,`password`) values ('name','12345')";
$is = $db->query($sql);

if( $is == true ){
    echo "插入成功";
}else{
    echo "插入失败";
}

$db 是上文连接成功后得到的对象,还记得吗?

删

语法

delete from users WHERE id='3'

delete 关键字,表示删除数据

from users 目标数据表

WHERE 筛选目标数据,没有它就会删除所有数据

id='3' 只删除 ID= 3 的数据。

在PHP中执行

参考 写数据 的方法,就不重复介绍了。

改

update set users username='新值', password='新值' WHERE id=3

update 关键字,表示插入数据

set users 目标数据表

username='新值', password='新密码' 要修改的字段值

WHERE id=3 筛选目标数据

查

从数据库中取数据,比增删改要多一步。

基本语法

select * from users where id>1 order by id desc limit 0,2

select 关键字,表示要取数据

* 取出哪些字段的值?*号代表所有,也可以使用 id,username这样的格式

from users 目标数据表


这些都是可有可无的,但是顺序不能颠倒!!

where id>1 筛选目标数据,否则取出所有数据

order by id 根据ID进行排序,没有的话使用默认排序

desc 倒序,对应的是 asc 是正序。

limit 0,2 对结果数量进行限制,0,2表示只要前两条数据。

使用PHP获取数据

代码较多,涉及多个知识点,请注意!

$mysqli_result = $db->query("select * from users");

$rows = array();
while( $row = $mysqli_result->fetch_array( MYSQLI_ASSOC ) ){
    $rows[] = $row;
}
var_dump( $rows );

$mysqli_result 如果 $db->query() 执行的是 SELECT的语句,就会返回系统类mysqli_result的实例化对象。其他的是 true/false )

mysqli_result 手册地址:http://php.net/manual/zh/class.mysqli-result.php

$rows 定义数组,用于保存取出来的数据


while(){} 使用循环结构遍历数据。

$row = $mysqli_result->fetch_array() 每调用一次fetch_array,就会取出一条数据,直到所有数据都显示完毕,我们将它保存在 $row 变量。

MYSQLI_ASSOC (可选)内置常量,表示需要一个关联数组地。

$rows[] = $row 将每次取出的数据,都保存在 $rows 这个二维数组里。

var_dump($rows) 看看你的数据,标准的二维数组,之后你可以用对付数组的任何方法来处理它。

WHERE 过滤

SQL的一部分,用于过滤数据,支持从简单到复杂的各种查询。

//给大家演示一些常见语法

WHERE id = 3
where id = 3 and name = '张三'
where id > 3 and name <> '张三' or password = '12345'
where ...

总结

连接流程的理解非常重要,尤其要注意的是:PHP 和 MYSQL 是两个独立的软件,必须通过某个扩展(mysqli)才能连接到一起进行处理。

posted on 2018-01-02 15:57  雨水是浪漫的诗人  阅读(189)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3