一、过时方法(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. MotionManager 陀螺仪实现方式

      题外话:   权利的游戏开播了,引用一句话:   布兰:一个人如果还把,他还能勇敢么?   奈德:人在害怕时候的勇敢,才是真的勇敢.     回归正题:   说下关于 CMMotionManage ...

  2. 条款09:绝不在构造和析构过程中调用virtual函数

    不该在构造函数和析构函数期间调用virtual函数,这一点是C++与jave/C#不同的地方之一. 假设有一个class继承体系,用来模拟股市交易如买进.卖出的订单等等.这样的交易一定要经过审计,所以 ...

  3. wince kill 进程

    http://www.cnblogs.com/fujinliang/archive/2012/09/13/2684165.html 原文地址 http://www.2cto.com/kf/201504 ...

  4. Hyperledger Fabric1.4的多机部署

    之前的文章深入解析Hyperledger Fabric启动的全过程主要讲解了Fabric的网络搭建,以及启动的整体流程,但是都是通过单机完成的.而区块链本身就是去中心化的,所以最终还是要完成Fabri ...

  5. python的is与==的区别

    is is比较的是两个变量的地址值,如果地址值正确,则返回True,否则返回False,实例如下: 如图所示,a,b列表的数值相等,但地址是不相等的,所以返回True,与值无关 == ==比较的是两个 ...

  6. 第七章 手动部署Fisco Bcos 区块链并完成新增群组,在原有群组中新增机构

    鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 目标 1.新增群组搭建完整联盟链 2.根据群组新 ...

  7. 正确写网站title、keywords、description

    一.title title,也就是标题,是在浏览器上面显示出来的,方便用户了解这个页面的内容;特别是搜索引擎判断你网页内容的主要根据.搜索引擎就很大部分是依靠网站title来判断你网站是关于什么内容的 ...

  8. vue.js 解决跨域问题

    我们调试vue.js代码的时候一般都用chrome, 下载插件 进入chrome应用商店 搜索 重启chrome就可以解决跨域问题

  9. django基础知识之状态保持session:

    状态保持 http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态 客户端与服务器端的一次通信,就是一次会话 实现状态保持的方式:在客户端或服务器端存储与会话有关的数据 存储方式包括c ...

  10. Bzoj: 2073 [POI2004]PRZ 题解

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 401  Solved: 296[Submit][Status][D ...