一个简单的小程序:

  配置 config.ini

<?php
//项目的根目录
define("ROOT","F:/文件夹的名字/oop/");
//数据库连接信息
define("DB_HOST",'localhost');
define("DB_USERNAME","root");
define("DB_PASSWORD","root");
define("DB_NAME",'cms');
define("DB_CHARSET","utf8");

  类 Db.class.php

<?php
class Db{
protected $conn="";
/*
* 作用:连接数据库,打开 设置交互字符集,选择数据库
* 参数:host username password dbName charset
* 返回值:bool
*/
function Db(){
$link=mysql_connect(DB_HOST,DB_USERNAME,DB_PASSWORD);
$this->conn=$link;
if(is_resource($link)){
mysql_set_charset(DB_CHARSET);
$re=mysql_select_db(DB_NAME);
if($re){
return true;
}else{
return false;
}
}else{
return false;
}
}
/*
* 作用:执行sql语句
* 参数:sql语句
* 返回值:update delete 返回影响记录条数
* insert 返回主键id值
* select 返回二维数组
*/
function query($sql){
$re=mysql_query($sql);
if($re){
//判断sql语句的类型
if(preg_match("/^update|^delete/i",$sql)){
return mysql_affected_rows();
}else if(preg_match("/^insert/i",$sql)){
return mysql_insert_id();
}else if(preg_match("/^select/i",$sql)){
//返回二维数组
$arr=array();
while($row=mysql_fetch_assoc($re)){
$arr[]=$row;
}
return $arr;
}else{
return $re;
}
}else{
return false;
}
} /*
* 作用:关闭数据库连接
* return:bool
*/
function __destruct(){
$re=mysql_close($this->conn);
}
}

  增 add.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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Document</title>
</head>
<body>
<div>当前操作:文章添加</div>
<form action="doAction.php" method="post">
标题:<input type="text" name="title"/><br/>
内容:<textarea rows="8" cols="60" name="content"></textarea><br/>
作者:<input type="text" name="author"/><br/>
分类:<select name="type">
<option value="国内">国内</option>
<option value="国际">国际</option>
<option value="体育">体育</option>
<option value="军事">军事</option>
</select><br/>
<input type="submit" value="发布"/>
</form>
</body>
</html>

  列表页 db.php

<?php
header("content-type:text/html;charset=utf-8");
require '../config.ini.php';
require '../class/Db.class.php';
$ob=new Db();
$arr=$ob->query("select * from news limit 5");
?>
<!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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Document</title>
</head>
<body>
<!-- 呈现表格 -->
<table>
<tr>
<th>id</th>
<th>标题</th>
<th>发布时间</th>
<th>操作</th>
</tr>
<?php
foreach($arr as $v){
?>
<tr>
<td><?php echo $v['id']?></td>
<td><?php echo $v['title']?></td>
<td><?php echo $v['pubtime']?></td>
<td><a href="">修改</a>&nbsp;<a href="delete.php?id=<?php echo $v['id']?>">删除</a></td>
</tr>
<?php
}
?>
</table>
</body>
</html>

删除delete.php

<?php
header("content-type:text/html;charset=utf-8");
//删除某id对应的文章
require '../config.ini.php';
require '../class/Db.class.php';
$ob=new Db();
//拼sql语句
$sql="delete from news where id=".$_GET['id'];
//执行 db::query()
$re=$ob->query($sql);
//根据结果提示
var_dump($re);

 业务逻辑处理doAction.php

<?php
require '../config.ini.php';
require '../class/Db.class.php';
//调用 Db::__construt()
$ob=new Db();
//接收数据
$title=$_POST['title'];
$content=$_POST['content'];
$pubtime=time();
$type=$_POST['type'];
$author=$_POST['author'];
//拼sql语句
$sql="insert into news(title,content,pubtime,type,author)
values('$title','$content','$pubtime','$type','$author')";
//Db::query()
$re=$ob->query($sql);
//提示
var_dump($re);

php面向对象深入理解(二)的更多相关文章

  1. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  2. 对面向对象的理解—— SAP电面(1)

    对于C++面向对象的理解 面向对象是在结构化设计方法出现很多问题的情况下应运而生的.结构化设计方法求解问题的基本策略是从功能的角度审视问题域.它将应用程序看成实现某些特定任务的功能模块,其中子过程是实 ...

  3. javascript javascript面向对象的理解及简单的示例

    javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...

  4. java基础-谈谈你对面向对象的理解

    一 前言 本篇文章的核心知识如下,主要是帮助大家更好的理解面向对象编程: 二面向对象VS面向过程 2.1 面向过程编程 面向过程编程(Process Oriented Programming )其意指 ...

  5. js面向对象怎么理解

    js面向对象怎么理解 <一>. 认识对象.首先要认识对象:在编程中,对象(object)是具体的某一个实例,唯一的某一个个体.如:电脑就是一个统称,而你面前的这一台电脑就是对象.而电脑的统 ...

  6. javascript面向对象的理解(一)

    第一次在园子发文: 关于js面向对象的理解: 工厂方式是什么?构造函数是什么?原形链?对象的引用? 1.对象是什么? 在js接触的比较多的就是对象了,比如: var arr = []; arr.num ...

  7. JavaScript面向对象的理解

    JavaScript面向对象的理解  笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...

  8. Java面向对象 IO (二)

     Java面向对象  IO   (二) 知识概要:               (1)字节流概述 (2)字节流复制图片 (3)IO流(读取键盘录入) (4)读取转换流,写入转换流 字节流概述   ...

  9. Javascript面向对象编程(二):构造函数的继承 作者:yuan一峰

    Javascript面向对象编程(二):构造函数的继承   作者: 阮一峰 日期: 2010年5月23日 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生 ...

  10. 浅谈PHP面向对象编程(二、基础知识)

    和一些面向对象的语言有所不同,PHP并不是一种纯面向对象的语言,包PIP它支持面向对象的程序设计,并可以用于开发大型的商业程序.因此学好面向对象输程对PHP程序员来说也是至关重要的.本章并针对面向对象 ...

随机推荐

  1. rest framework之限流组件

    一.自定义限流 限流组件又叫做频率组件,用于控制客户端可以对API进行的请求频率,比如说1分钟访问3次,如果在1分钟内超过3次就对客户端进行限制. 1.自定义限流 假设现在对一个API访问,在30s内 ...

  2. python入门学习一

    本文用来记录学习python过程中所遇到的不同的或者记忆不清的一些定义. 注释 注释用# #此处是注释 n = 123 f = 456 不转义 Python中r‘  ’表示字符串默认不转义 print ...

  3. SQL Select选择

    SQL Select(选择) 语法 SELECT 语法用于从数据库中选择数据. 返回的数据存储在结果表中,称为结果集. SQL SELECT 语法 SELECT column1, column2, . ...

  4. thinkphp IP获取和定位

    系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例: $ip = get_client_ip(); 如果要支持IP定位功能,需要使用扩展类库Org\Net\IpLocation ...

  5. 【Codeforces Round #429 (Div. 2) C】Leha and Function

    [Link]:http://codeforces.com/contest/841/problem/C [Description] [Solution] 看到最大的和最小的对应,第二大的和第二小的对应. ...

  6. 数论+乱搞——cf181B

    /* 2-type B|D^k 3-type B|D-1 11-type B|D+1 6-type B质因子分解, 7-type 其他情况 3-type: (a*(D^4-1)+b*(D^3-1)+. ...

  7. AcWing 142. 前缀统计 字典树打卡

    给定N个字符串S1,S2…SNS1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1S1-SNSN中有多少个字符串是T的前缀. 输入字符串的总长度不超过106106,仅包含小写字母. ...

  8. 浅谈HP-Socket在物联网的应用

    原文链接:https://my.oschina.net/chrisforbt/blog/1669746 一.应用背景 去年公司成立了个项目——<智慧用电安全隐患监管服务平台>,计划是开发一 ...

  9. 3、加强siege性能测试

    需求1:使用siege对多个页面进行加压 1.对如下3个页面加压 http://jrjf.hscx365.com/ http://jrjf.hscx365.com/solution/armyone.h ...

  10. source insight和vim同时使用

    https://blog.csdn.net/wangn222/article/details/72721993 1.Source Insight中,Options->Custom Command ...