PHP -- 数据库访问
一、过时方法(PHP5以前的版本用的):用函数链接数据库,相当于面向过程的方式
//设置页面编码格式
header("content-type:text/html;charset=utf-8");
1)生成链接
$db_connect = $mysql_connect("localhost","root","517") // localhost:服务器的地址; root:数据库的用户名; 517:数据库密码
2)选择操作的数据库
mysql_select_db("mydb",$db_connect); // db: 代表数据库,是datebase的简写 ; $db_connect:表示用哪一个链接数据库
3)写sql语句
$sql = "select * from Info ";
4)执行sql语句
$result = mysql_query($sql);
5)处理查询结果
$row = mysql_fetch_row($result);
备注:如果输出内容出现乱码,可以在开始处加上 header("content-type:text/html;charset=utf-8");
二、面向对象的方式
1.生成链接对象,需要四个参数
$db = new mysqli("localhost","root","517","mydb");
//mysqli 是对mysql的扩展 // localhost:服务器的地址; root:数据库的用户名; 517:数据库密码; mydb:要链接的数据库
2.判断是否连接成功
!mysqli_connect_error() or die("链接失败"); //die相当于echo"链接失败"; exit; //exit表示退出整个程序
3.写sql语句
$sql = "select * from Info ";
4.执行sql语句
$result = $db->query($sql); //可以输出一下$result看下它的类型,var_dump($result);输出的是一个Object(对象).
5.操作结果集数据
1)
//$row = $result->fetch_row(); [ $result->fetch_row(); 每执行一次都会取出不同的一条数据 //fetch_row 表示取出一条数据 ]
//fetch_row();返回的是索引数组
while($row = $result->fetch_row())
{
print_r($row);
echo"<br / >";
}
2)或者
$attr = $resullt->fetch_all(); //返回$result结果集里的所有数据,返回的是一个二维数组.
3)或者
$result->fetch_assoc(); //返回一条数据,返回的是关联数组
》》练习的代码(通过链接数据库查出数据,做成表格)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<?php
//造链接对象
$db =new MySQLi("localhost","root","517","mydb");
//判断是否出错
!mysqli_connect_error() or die("连接失败");
//写sql语句
$sql = "select * from Info";
//执行sql语句
$result = $db->query($sql);
//处理查询数据并显示
echo "<table width='100%' border='1' cellspacing='0' cellpadding='0'>"; echo"<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>";
while($row = $result->fetch_row())
{
//处理性别(也可以用函数的方法处理)
$sex = $row[2]?"男":"女";
//处理民族
$name = ShowNation($db,$row[3]);
echo"<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$sex}</td><td>{$name}</td><td>{$row[4]}</td></tr>";
}
echo"</table>"; //做函数处理民族,函数的功能是传入一个代号返回一个名称
function ShowNation($db,$code)
{
//写sql语句
$sql = "select Name from Nation where Code='{$code}'";
//执行sql语句
$result =$db->query($sql);
$jieguo = $result->fetch_row();
return $jieguo[0];
} ?> </body>
</html>
》》查询数据库,用php实现下拉列表
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<select>
<?php //造链接对象
$db =new MySQLi("localhost","root","517","mydb");
//判断是否出错
!mysqli_connect_error() or die("连接失败");
//写sql语句
$sql = "select * from Nation";
//执行sql语句
$result = $db->query($sql);
//处理数据并显示
$attr = $result->fetch_all(); //返回的二维数据 //遍历二维数组显示出来
for($i=0;$i<count($attr);$i++)
{ list($code,$name) = $attr[$i];
echo"<option value='{$code}'>{$name}</option>";
} ?>
</select>
</body>
</html>
备注:每个数据库都有一个用户名,SqlServer里面的超级管理员叫做SA(Super Administrator的简写),指拥有数据库管理最高权限的用户;mysql的超级管理员是root。
执行的sql语句,如果是增删改语句,执行之后返回的结果是true或者false.
快捷键:选中需要移动的代码,按Tab键可以向右移动,shift+Tab:可以向左移动
PHP -- 数据库访问的更多相关文章
- [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一)
[入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一) Date 周二 06 一月 2015 By 钟谢伟 Tags mvc4 / asp.net 示 ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
- [开源].NET数据库访问框架Chloe.ORM
扯淡 13年毕业之际,进入第一家公司实习,接触了 EntityFramework,当时就觉得这东西太牛了,访问数据库都可以做得这么轻松.优雅!毕竟那时还年轻,没见过世面.工作之前为了拿个实习机会混个工 ...
- 我的基于asp.net mvc5 +mysql+dapper+easyui 的Web开发框架(1)数据库访问(0)
一.数据库访问 概述 1. 数据库使用mysql,orm采用dapper框架.dapper框架应用简单,只是需要自己手写sql语句,但是对于像我这样写了多年sql语句的人来说,这应该不算问题,个人还是 ...
- 数据库访问性能优化 Oracle
特别说明: 1. 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2. 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...
- 我也来写:数据库访问类DBHelper
一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
- step by step 之餐饮管理系统六(数据库访问模块)
距上次写的博客已经好几个月,一方面公司里面有很多的东西要学,平时的时候又要写代码,所以没有及时更新,不过现在还好,已经成型了,现在把之前的东西贴出来,先看一下现在做的几个界面吧.第一个界面是用颜色用区 ...
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- 我也来写:数据库访问类DBHelper(转)
一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
随机推荐
- 做个知识回顾目录,打算每日更新一下ios的基础知识
一.基础技能列表: 01 面向对象特性 类与方法封装 通过继承扩展类 抽象类与方法覆盖 多态.动态类型和动态绑定 分类和协议 ...
- mysql查询类型转换问题
mysql转换类型.类型转换.查询结果类型转换 一.问题来源 数据库一张表的主键id设为了自增,那就是int型的,但是其他表的关联字段又设置成了字符串! 而且已经开发了很久才发现问题,既然出现了问题肯 ...
- vuex分模块3
nuxt 踩坑之 -- Vuex状态树的模块方式使用 原创 2017年12月20日 11:24:14 标签: vue / nuxt / vuex / 模块化 / 状态管理 874 初次看到这个模块方式 ...
- 【dockerFile配置jvm 启动参数】dockerFile 参数解释
最近比较忙,实际也没有用得上.仅仅记录几个链接: Dockerfile reference:https://docs.docker.com/engine/reference/builder/#usag ...
- 交叉编译多平台 FFmpeg 库并提取视频帧
原文地址: 交叉编译多平台 FFmpeg 库并提取视频帧 交叉编译多平台 FFmpeg 库并提取视频帧 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x8 ...
- 【HDU - 2102】A计划(bfs)
-->A计划 Descriptions: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的 ...
- Fabric1.4源码解析:客户端安装链码
看了看客户端安装链码的部分,感觉还是比较简单的,所以在这里记录一下. 还是先给出安装链码所使用的命令好了,这里就使用官方的安装链码的一个例子: #-n 指定mycc是由用户定义 ...
- 常用的方法论-NPS
- Adding Cues (线索、提示) to Binary Feature Descriptors for Visual Place Recognition 论文阅读
对于有想法改良描述子却无从下手的同学还是比较有帮助的. Abstract 在这个文章中我们提出了一种嵌入continues and selector(感觉就是analogue和digital的区别)线 ...
- Python爬虫入门:爬取豆瓣电影TOP250
一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...