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,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
随机推荐
- Android-小小设置永久解决程序因为未捕获异常而异常终止的问题
(一) 前言各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的.. 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼! (二) Un ...
- Spring Type Conversion(Spring类型转换源码探究)
1:概述 类型转换系统负责Spring框架中对象类型转换和格式化工作. ConversionService默认实现UML图如下所示: GenericConversionService(通用类型转换服务 ...
- C语言实现常用排序算法——基数排序
#include<stdio.h> #include<math.h> #define SIZE 10 #define C_SIZE 20 /*行数稳定=10,切记!列数务必搞的 ...
- 在C#中创建文件快捷方式
创建快捷方式对于绝大多数 Windows 用户来说都是小菜一碟了,然而,这项工作却为程序员带来不少麻烦..NET 没有提供简便直接的创建快捷方式的方法,那么在 .NET 中我们如何为应用程序创建快捷方 ...
- JavaScript 一元正号运算符
本文适合JavaScript初学者. 一元正号介绍 一元正号运算符(+)位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值. 尽管一元负号也能转换非数值类型,但是一 ...
- 老雷socket编程之websocket实现
老雷socket编程之websocket实现 我们主要实现私聊和群聊两个功能,要在web端实现想微信QQ那样的即时通讯的功能,我们需要了解一下websocket.websocket是一种可以双向通讯的 ...
- yii中获取当前模块,控制器,方法
在控制器里 $name = $this->getModule()->id; // module $name = $this->getId(); // controller $nam ...
- 如何正确选择挑选适合的VPS服务器
就来讲讲,如何挑选适合你的VPS.基本过程就是:1.你使用VPS的用途:2.你需要的线路:3.你要选择的操作系统:4.你购买VPS的大概预算是多少. 一.用途方法,其实买VPS就是:建站.VPN使用. ...
- Vue技术点整理-前言
前言 Vue版本说明:本文档编写时,Vue稳定版本为 2.6.10 本文档编写目的为:整理Vue相关生态的技术点.和开发中经常使用到的技术点,让开发者快速上手开发,提升开发效率 一,Vue开发工具:本 ...
- RedisDesktopManager远程连接Linux系统的Redis服务
linux下安装redis :https://www.runoob.com/redis/redis-install.html 进入 src 运行redis : ./redis-server 打开另 ...