一、过时方法(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 -- 数据库访问的更多相关文章

  1. [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一)

    [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一) Date  周二 06 一月 2015 By 钟谢伟 Tags mvc4 / asp.net 示 ...

  2. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

  3. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  4. [开源].NET数据库访问框架Chloe.ORM

    扯淡 13年毕业之际,进入第一家公司实习,接触了 EntityFramework,当时就觉得这东西太牛了,访问数据库都可以做得这么轻松.优雅!毕竟那时还年轻,没见过世面.工作之前为了拿个实习机会混个工 ...

  5. 我的基于asp.net mvc5 +mysql+dapper+easyui 的Web开发框架(1)数据库访问(0)

    一.数据库访问 概述 1. 数据库使用mysql,orm采用dapper框架.dapper框架应用简单,只是需要自己手写sql语句,但是对于像我这样写了多年sql语句的人来说,这应该不算问题,个人还是 ...

  6. 数据库访问性能优化 Oracle

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  7. 我也来写:数据库访问类DBHelper

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  8. step by step 之餐饮管理系统六(数据库访问模块)

    距上次写的博客已经好几个月,一方面公司里面有很多的东西要学,平时的时候又要写代码,所以没有及时更新,不过现在还好,已经成型了,现在把之前的东西贴出来,先看一下现在做的几个界面吧.第一个界面是用颜色用区 ...

  9. C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看

    数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...

  10. 我也来写:数据库访问类DBHelper(转)

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

随机推荐

  1. git如何merge github forked repository里的代码更新

    git如何merge github forked repository里的代码更新? 问题是这样的,github里有个项目ruby-gmail,我需要从fork自同一个项目的另一个repository ...

  2. 这里有123个黑客必备的Python工具!

    123个Python渗透测试工具,当然不仅于渗透~ 如果你想参与漏洞研究.逆向工程和渗透,我建议你时候用Python语言.Python已经有很多完善可用的库,我将在这里把他们列出来. 这个清单里的工具 ...

  3. python 原理

    Python原理--总结 基础数据类型: ​ 字符串: ​ upper,lower,startwith,endswith,replace,strip,split,count,isdigit,index ...

  4. C语言实现常用排序算法——冒泡排序

    原理:比较临近的两个元素,只要不符合顺序就进行交换:要点:1.不要越界:2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组 void bubble_sort(int a[],int ...

  5. 通往Google之路:***

    *** & BBR 安装 系统支持:CentOS 6+, Debian 7+, Ubuntu 12+ 内存要求:≥128M --- 前提 满足以上要求的VPS服务器一台 安装基础命令工具:yu ...

  6. Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客

    阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...

  7. Django 你需要掌握的模型层(标签、过滤器、模板的继承与导入)

    Django 模型层(标签.过滤器.模板的继承与导入) 好文章来自超哥:https://www.cnblogs.com/guanchao/p/11006062.html   过滤器/自定义过滤器 模板 ...

  8. 视频直播技术之iOS端推流

    随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字.图片无法满足人们对视觉的需求,因此视频直播应运而生.承载了实时性Real-Time和交互性的直播云服务是直播覆盖各行各业的新动力.网 ...

  9. spring 5.x 系列第13篇 —— 整合RabbitMQ (xml配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 本用例关于rabbitmq的整合提供简单消 ...

  10. 【转载】BIO、NIO、AIO

    请看原文,排版更佳>转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深 ...