数据库

1 进行数据库操作的步骤

  1. 连接数据库 mysqli_connect
  2. 选择数据库 mysqli_select_db
  3. 设置文件编码 mysqli_query("set name utf-8")
  4. 发送数据库操作指令 比如查询 mysql_query("select * from user");
  5. 接收返回结果 这个很多,自己查手册
  6. 释放资源,关闭数据库 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-数据库的更多相关文章

  1. 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法

    1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...

  2. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常

    PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...

  3. 半吊子菜鸟学Web开发 -- PHP学习3-文件

    目录 1 PHP文件系统 1.1 PHP文件的读取 1.4 获得文件的大小 1.5 PHP写入文件 1.6 删除文件 1 PHP文件系统 1.1 PHP文件的读取 文件读取的函数是file_get_c ...

  4. 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session

    1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...

  5. 半吊子菜鸟学Web开发1 --配置开发环境

    先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...

  6. 半吊子菜鸟学Web开发6 -- Vscode开发环境配置

    1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...

  7. 半吊子菜鸟学Web开发2 --JavaScript学习1

    JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...

  8. 半吊子菜鸟学Web开发4 --Html css学习2

    1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...

  9. 半吊子菜鸟学Web开发3 --Html css学习1

    1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html>    <head& ...

随机推荐

  1. 请你说说Spring

    一. Spring是什么? 是一个轻量级的开源容器框架,用来装JavaBean,可以把其他的一些框架进行整合使用,使得开发更快,更简洁. 轻量级:占用空间小,非入侵式的(Spring中的对象不依赖于S ...

  2. verification TLM传输数据导致多线程访问同一个数据

    TLM传输数据导致多线程访问同一个数据 原因 TLM发送数据跟mailbox类似,都是发送的引用,这样发送端和接收端的引用都指向同一个数据,这样就会出现发送端修改数据会影响到接收端,比如发送的时候数据 ...

  3. c++ 动态内存2

    动态内存 vector<int> * gen_vector(const size_t &size) { return new vector<int>(size, 0); ...

  4. kube-proxy的三种工作模式

    kube-proxy模式详解 kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引 ...

  5. ELK(Elasticsearch 、 Logstash以及Kibana)

    配置日志收集系统 ELK需求背景:业务发展越来越庞大,服务器越来越多各种访问日志.应用日志.错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不方便运营人员需 ...

  6. m0n0wall安装教程

    m0n0wall的镜像链接:https://pan.baidu.com/s/1soIw7cS1Tv180fbo2655UA 提取码:dpon 一.新建虚拟机 新建虚拟机我想大家都会,详细步骤我就不陈述 ...

  7. 挖到一款免费好用的web报表插件

    最近公司项目需要用到报表,公司领导要求我来调研下报表工具.开始的时候了解了目前市场上功能强大,占有率高的两款报表工具,帆软报表和润乾报表,这两款报表工具功能比较强大,覆盖的行业较广,基本能满足所有的报 ...

  8. C# 枚举器(enumerator)

    总结: 1.枚举器就像是序列中的"游标"或"书签".可以有多个"书签",移动其中任何一个都可以枚举集合,与其他枚举器互不影响.用来遍历数据结 ...

  9. shell脚本创建身份证号

    --作者:飞翔的小胖猪 --创建时间:2021年5月16日 --修改时间:2021年5月16日 说明 运行脚本,用户手动输入信息生成身份证号.该程序的核心在于函数模块化及select的使用. 注意:该 ...

  10. low-code

    low-code特点: 1. 一个创造软件的开发环境,类似vs-code: 2. 通过可视化拖拽和参数配置高效开发. 1. 背景 1.1 目标 需求的交付质量和交付效率一直是中后台项目开发中非常关注的 ...