半吊子菜鸟学Web开发 -- PHP学习5-数据库
数据库
1 进行数据库操作的步骤
- 连接数据库 mysqli_connect
- 选择数据库 mysqli_select_db
- 设置文件编码 mysqli_query("set name utf-8")
- 发送数据库操作指令 比如查询 mysql_query("select * from user");
- 接收返回结果 这个很多,自己查手册
- 释放资源,关闭数据库 mysqli_free_result() mysql_close();
2 数据库的连接
这里特别要注意的是PHP7.0已经不支持mysql_connect()函数了,取而代之的是mysqli_connect 或者是PDO
$link = mysqli_connect('127.0.0.1', 'code1', '') or die('数据库连接失败');
mysqli_select_db('code1');
mysqli_query("set names 'utf8'");
$result = mysqli_query('select * from user limit 1');
$row = mysqli_fetch_assoc($result);
print_r($row);
对应的mysql连接操作是
mysql -h localhost -u code1 -p
3 选择数据库
当连接成功以后,我们需要选择一个操作的数据库,通过mysql_select_db函数来选择数据库。
mysqli_select_db('code1');
通常我们会先设置一下当前连接使用的字符编码,一般的我们会使用utf8编码。
mysqli_query("set names 'utf8'");
4 执行查询指令
先执行mysqli_query函数来发送查询语句
然后执行mysqli_fetch_arry函数来取回查询数据
$res = mysqli_query('select * from user limit 1');
$row = mysqli_fetch_array($res);
var_dump($row);
5 插入新的数据
插入数据是用mysqli_query来执行mysql的插入语句,在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。
$name = '李四';
$age = 18;
$class = '高三一班';
$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";
mysql_query($sql); //执行插入语句
$uid = mysql_insert_id();
echo $uid;
6 取回数据
取回数据最常用的是mysqli_fetch_array(取回数据一般都是取回一行数据)
用mysqli_fetch_row来获取数字索引数组
用mysqli_fetch_assoc来获取关联索引数组
$row = mysql_fetch_row($result);
$row = mysql_fetch_array($result, MYSQL_NUM); //这两个方法获取的数据是一样的
$row = mysql_fetch_assoc($result);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
用循环遍历来获取所有数字
$data = array();
while ($row = mysql_fetch_array($result)) {
$data[] = $row;
}
7 查询分页数据
我们使用分页来显示数据,每页显示10到20条数据
mysql中的limit可以实现分页,limit m,n表示从m行后取n行数据,
假定当前页为$page,每页显示$n条数据,m为当前页前面所有数据,即$m = ($page - 1) * $n
$page = 2;
$pagesize = 2;
//在这里构建分页查询
$offset = ($page - 1) * $pagesize;
$sql = "select * from user limit $offset,$pagesize";
//获取翻页数据
$result = mysql_query($sql);
$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$data[] = $row;
}
print_r($data);
8 删除与更新操作
这个只需要通过mysql的update和delete来进行操作
更新操作
$sql = "update user set name = '曹操' where id=2 limit 1";
if (mysql_query($sql)) {
echo '更新成功';
}
删除操作
$sql = "delete from user where id=2 limit 1";
if (mysql_query($sql)) {
echo '删除成功';
}
mysql_affected_rows函数来获取更新过的数据行数
echo '数据更新行数:'.mysql_affected_rows();
9 关闭数据库
mysql_close();
或者
$link = mysql_connect($host, $user, $pass);
mysql_close($link);
半吊子菜鸟学Web开发 -- PHP学习5-数据库的更多相关文章
- 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法
1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...
- 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...
- 半吊子菜鸟学Web开发 -- PHP学习3-文件
目录 1 PHP文件系统 1.1 PHP文件的读取 1.4 获得文件的大小 1.5 PHP写入文件 1.6 删除文件 1 PHP文件系统 1.1 PHP文件的读取 文件读取的函数是file_get_c ...
- 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session
1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...
- 半吊子菜鸟学Web开发1 --配置开发环境
先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...
- 半吊子菜鸟学Web开发6 -- Vscode开发环境配置
1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...
- 半吊子菜鸟学Web开发2 --JavaScript学习1
JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...
- 半吊子菜鸟学Web开发4 --Html css学习2
1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...
- 半吊子菜鸟学Web开发3 --Html css学习1
1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html> <head& ...
随机推荐
- 我们一起来学Shell - shell的函数
文章目录 定义函数 执行不带参数的函数 执行带参数的函数 函数的执行总结 我们一起来学Shell - 初识shell 我们一起来学Shell - shell的变量 我们一起来学Shell - shel ...
- Devops 开发运维高级篇之容器管理
Devops 开发运维高级篇之容器管理 安装docker Dockerfile镜像脚本入门制作 Harbor镜像仓库安装及使用 不过多解释docker直接秀基操 安装docker:(jenkins服务 ...
- 【转】int和Integer的区别
int和Integer的区别: 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的 ...
- 教你快速区分传统报表和商业智能BI
很多人分不清楚,传统报表和商业智能BI之间的区别?有些人认为,BI就是做报表的,其实不然,报表只是BI的一部分,报表是关于过去和现状的展示,而BI是关于如何通过分析数据,帮助决策者找到改变和提高的方案 ...
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播
[源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...
- Java面试题2017
一.Java 基础 1. String 类为什么是 final 的. 2. HashMap 的源码,实现原理,底层结构. 3. 说说你知道的几个 Java 集合类:list.set.queue.map ...
- laravel7 搜索关键字标红及手机号,身份证号隐藏
控制器代码 public function index(Request $request) { //接受搜索关键字 $word = $request->get('name'); $start = ...
- laravel7 h-ui点改
html: <td> @if($item->fang_status == 0) <span onclick="changeFangStatus(this,{{$ite ...
- php 23种设计模式 - 解释器模式
给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子.角色:环境角色(PlayContent):定义解释规则的全局信息.抽象解释器(Empress):定义了部 ...
- laravel 数据验证规则
return [ 'accepted' => '必须为yes,on,1,true', 'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也 ...