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,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
随机推荐
- git如何merge github forked repository里的代码更新
git如何merge github forked repository里的代码更新? 问题是这样的,github里有个项目ruby-gmail,我需要从fork自同一个项目的另一个repository ...
- 这里有123个黑客必备的Python工具!
123个Python渗透测试工具,当然不仅于渗透~ 如果你想参与漏洞研究.逆向工程和渗透,我建议你时候用Python语言.Python已经有很多完善可用的库,我将在这里把他们列出来. 这个清单里的工具 ...
- python 原理
Python原理--总结 基础数据类型: 字符串: upper,lower,startwith,endswith,replace,strip,split,count,isdigit,index ...
- C语言实现常用排序算法——冒泡排序
原理:比较临近的两个元素,只要不符合顺序就进行交换:要点:1.不要越界:2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组 void bubble_sort(int a[],int ...
- 通往Google之路:***
*** & BBR 安装 系统支持:CentOS 6+, Debian 7+, Ubuntu 12+ 内存要求:≥128M --- 前提 满足以上要求的VPS服务器一台 安装基础命令工具:yu ...
- Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客
阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...
- Django 你需要掌握的模型层(标签、过滤器、模板的继承与导入)
Django 模型层(标签.过滤器.模板的继承与导入) 好文章来自超哥:https://www.cnblogs.com/guanchao/p/11006062.html 过滤器/自定义过滤器 模板 ...
- 视频直播技术之iOS端推流
随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字.图片无法满足人们对视觉的需求,因此视频直播应运而生.承载了实时性Real-Time和交互性的直播云服务是直播覆盖各行各业的新动力.网 ...
- spring 5.x 系列第13篇 —— 整合RabbitMQ (xml配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 本用例关于rabbitmq的整合提供简单消 ...
- 【转载】BIO、NIO、AIO
请看原文,排版更佳>转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深 ...