php 之 数据访问
数据访问:
方式一:已过时,只做了解
1.造一个连接(建立通道)
$db=mysql_connect("localhost","root","123"); //括号内是“服务器地址”,“用户名”,“密码”
2.选择操作哪个数据库
mysql_select_db("mydb","$db");
3.写sql语句
$sql="select * from Info";
4.执行sql语句
$result=mysql_query($sql); //query 有查询之意
5.从结果集($result)中取数据
$row=mysql_fetch_row($result); //每执行一次读取一行数据
$row1=mysql_fentch_row($result); //执行第二条数据
var_dump($row);
读取全部数据用循环:
while($row=mysql_fetch_row($result))
{
var_dump($row);
}
方法二:面向对象
1.造一个连接对象:
$db=new MySQLi("localhost","root","123","mydb") //括号内的内容依次为“服务器地址”,“用户名”,“密码”,“数据库名称”
2.判断连接是否出错:
2.1 mysqli_connect_error(); //代表连接出错
2.2 if(mysqli_connect_erroe())
{
echo "连接失败!";
exit(); //退出程序
}
2.3 !mysqli_connect_error or die ("连接失败!"); //“or”前面代表连接正确,后面代表连接失败
3. 写sql语句:
$sql="select * from nation";
4. 执行sql语句:如果执行成功返回结果集对象,如果执行失败返回false
$result=$db->query($sql);
5.从结果集中读取数据,先判断是否有数据
if($result)
{
//返回一行数据的索引数组,每次执行返回一条数据
var_dump($result->fetch_row());
while($row=$result->fetch_row)
{
var_dump($row);
}
//返回一行数据的关联数组,每次执行返回一条数据
var_dump($result->fetch_row());
//通过二维数组返回所有数据
var_dump($result->fetch_all());
//以对象的方式返回一行数据
var_dump($result->fetch_object());
}
练习:
1.以下拉菜单的形式在页面显示nation表
$db=new MySQLi("localhost","root","","mydb");
!mysqli_connection_erroe() or die ("连接失败!");
$sql="select*from nation";
$result=$db->query($sql);
if($result)
{
$att=$result->fetch_all();
echo "<select>";
foreach ($att as $value)
{
echo "<option value='{$value[0]}'>{$value[1]}</option>";
}
echo "</select>";
}

2. 把Info表查出来,以表格的形式显示
$db=new MySQLi("localhost","root","","mydb");
!mysqli_connecton_error() or die("连接失败!");
$sql="select * from info";
$result=$bd->query($sql);
if($result)
{
$att=$result->fetch_all();
echo "<table border='1' width='100%' cellpadding='0' cellspacing='0'>";
echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>";
foreach ($att as $value)
{
echo "<tr>
<td>{$value[0]}</td>
<td>{$value[1]}</td>
<td>{$value[2]}</td>
<td>{$value[3]}</td>
<td>{$value[4]}</td>
</tr>";
}
echo "</table>";
}
//也可以用for循环
if($result)
{
$arr=$result->fetch_all();
echo "<table border='1' width='100%' cellpadding='0' cellspacing='0'>";
echo "<tr><td>Code</td><td>Name</td><td>Sex</td><td>Nation</td><td>Birthday</td></tr>";
for($i=0;$i<count($arr);$i++)
{
echo "<tr>
<td>{$arr[$i][0]}</td>
<td>{$arr[$i][1]}</td>
<td>{$arr[$i][2]}</td>
<td>{$arr[$i][3]}</td>
<td>{$arr[$i][4]}</td>
</tr>";
}
echo "</table>";
}

php 之 数据访问的更多相关文章
- ADO.NET编程之美----数据访问方式(面向连接与面向无连接)
最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...
- 高性能Javascript--高效的数据访问
接上一篇,希望能写一个高性能Javascript专题. 第一篇:高性能Javascript--脚本的无阻塞加载策略. 参考摘录<高性能Javascript>. 经典计算机科学的一个问题是, ...
- 解析大型.NET ERP系统数据访问 对象关系映射框架LLBL Gen Pro
LLBL Gen Pro是一个为.NET开发人员设计的的对象关系映射(ORM)框架,与NHibernate,Entity Framework等框架一样,通过实体与数据表的映射,实现关系数据库持久化. ...
- 架构从最简单的数据访问框架(ORM)到资源调度和治理中心(SOA)说起
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构当网站流量很小时,只需一个应用,将 ...
- ADO.NET数据访问模板整理
/// <summary> /// 数据访问类:hi_test /// </summary> public partial class TestDA { public Test ...
- ADO.NET数据访问技术
ADO.NET数据访问技术 就是将C#和MSSQLl连接起来的纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用.是所有数据访问技术的基础. A ...
- Oracle数据访问组件ODAC的安装方法
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- 分享自己的超轻量级高性能ORM数据访问框架Deft
Deft 简介 Deft是一个超轻量级高性能O/R mapping数据访问框架,简单易用,几分钟即可上手. Deft包含如下但不限于此的特点: 1.按照Transact-SQL的语法语义风格来设计,只 ...
- 在 ASP.NET 中创建数据访问和业务逻辑层(转)
.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...
- ClownFish:比手写代码还快的通用数据访问层
http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html 阅读目录 开始 ClownFish是什么? 比手写代码还快的执行速度 ...
随机推荐
- JVM虚拟机栈和本地方法栈溢出测试
弄JAVA,那JVM,JAVA语法,JDK库,JAVAEE,流行框架是一个都不能少,才可以有全局感的. JVM高级特性这书,看得差不多了.慢慢实践. /** * * *VM Args: -Xms20m ...
- 8.2.1.8 IS NULL Optimization NULL 优化:
8.2.1.8 IS NULL Optimization NULL 优化: Oracle 对待null值: SQL> create table t100(id int,name char(10) ...
- centos 添加用户
测试环境:CentOS 6.0 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy // ...
- 《Node.js开发指南》知识整理
Node.js简介 Node是一个可以让JavaScript运行在服务器端的平台,抛弃了传统平台依靠多线程来实现高并发的设计思路,而采用单线程.异步式I/O.事件驱动式的程序设计模型. 安装和配置No ...
- Java Hibernate 之连接池详解
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在配置连接池时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支持,但在Hiber ...
- cocos2d-x游戏开发(十七)NDK+ant编译暗黑世界
个人原创,欢迎转载http://blog.csdn.net/dawn_moon/article/details/12308967 9秒论坛的客户端暗黑世界,ios已经跑过了,今天搞了一下安卓的,记录一 ...
- 浅谈zygote服务中的设计思路
zygote服务是Android启动和服务APK的核心服务,每个APK都是通过zygote启动,今日阅读它的源码学习到一个不错的设计思路. 首先看看一个APK通过zygote的启动流程: 按照一般的设 ...
- OSI七层以及各层上的协议
各层简介: [1]物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化为1.0, ...
- 用java实现Simsimi小黄鸡接口
package com.iask.webchat.chatmachine; import java.io.BufferedReader; import java.io.InputStream; imp ...
- 【MongoDB数据库】怎样安装、配置MongoDB
本blog以最简洁的方式记录了博主在折腾MongoDB过程中点点滴滴,当中包含下载MongoDB.配置环境变量.怎样启动MongoDBserver.怎样连接MongoDBserver以及怎样连接Mon ...