php面向对象深入理解(二)
一个简单的小程序:
配置 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> <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面向对象深入理解(二)的更多相关文章
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...
- 对面向对象的理解—— SAP电面(1)
对于C++面向对象的理解 面向对象是在结构化设计方法出现很多问题的情况下应运而生的.结构化设计方法求解问题的基本策略是从功能的角度审视问题域.它将应用程序看成实现某些特定任务的功能模块,其中子过程是实 ...
- javascript javascript面向对象的理解及简单的示例
javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...
- java基础-谈谈你对面向对象的理解
一 前言 本篇文章的核心知识如下,主要是帮助大家更好的理解面向对象编程: 二面向对象VS面向过程 2.1 面向过程编程 面向过程编程(Process Oriented Programming )其意指 ...
- js面向对象怎么理解
js面向对象怎么理解 <一>. 认识对象.首先要认识对象:在编程中,对象(object)是具体的某一个实例,唯一的某一个个体.如:电脑就是一个统称,而你面前的这一台电脑就是对象.而电脑的统 ...
- javascript面向对象的理解(一)
第一次在园子发文: 关于js面向对象的理解: 工厂方式是什么?构造函数是什么?原形链?对象的引用? 1.对象是什么? 在js接触的比较多的就是对象了,比如: var arr = []; arr.num ...
- JavaScript面向对象的理解
JavaScript面向对象的理解 笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...
- Java面向对象 IO (二)
Java面向对象 IO (二) 知识概要: (1)字节流概述 (2)字节流复制图片 (3)IO流(读取键盘录入) (4)读取转换流,写入转换流 字节流概述 ...
- Javascript面向对象编程(二):构造函数的继承 作者:yuan一峰
Javascript面向对象编程(二):构造函数的继承 作者: 阮一峰 日期: 2010年5月23日 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生 ...
- 浅谈PHP面向对象编程(二、基础知识)
和一些面向对象的语言有所不同,PHP并不是一种纯面向对象的语言,包PIP它支持面向对象的程序设计,并可以用于开发大型的商业程序.因此学好面向对象输程对PHP程序员来说也是至关重要的.本章并针对面向对象 ...
随机推荐
- 【Jquery】this和event.target的区别
1.js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素: 2.this和event.target都是dom对象,如果要使用jque ...
- rest framework之渲染器
一.内置渲染器 REST框架包括许多内置的Renderer类,它们允许你使用各种媒体类型返回响应.还支持定义你自己的自定义渲染器. 内置渲染器的使用 1.全局设置 可以使用DEFAULT_RENDER ...
- 项目实战 - 混合式App开发
为何要使用混合式开发? 要说为什么使用Hybrid App [混合式开发],就要先了解什么是Native App[原生程序], Web App[网站程序]. Native App 是专门针对某一类移动 ...
- Java——类的成员之五:内部类
3.6 类的成员之五:内部类 3.6.1 静态内部类 ①静态内部类可以等同看做静态变量. ②内部类重要的作用:可以访问外部类中私有的数据. ③静态内部类可以直接访问外部类的静态数据,无法直接访问成员. ...
- linux IPC的PIPE
一.PIPE(无名管道) 函数原型: #include <unistd.h> ]); 通常,进程会先调用pipe,接着调用fork,从而创建从父进程到子进程的IPC通道. 父进程和子进程之 ...
- jmeter测试之-脚本制作
一.脚本录制 1.遇见的问题,回放的时候总是登录失败 解决方式:设置HTTP请求为—跟随重定向 2.新增一个用户的时候,脚本参数里面输入汉字,在浏览器查看的时候显示问号 解决方式:脚本编码方式增加u ...
- (转)openfire插件开发(二) 基于web的插件开发
转:http://blog.csdn.net/lovexieyuan520/article/details/38935137 在前面的博客中,我介绍了openfire插件开发,在那篇博客中我详细的说明 ...
- appium自动化获取app的appPackage与appActivity方法总结
一,获取apppackage 方法不止一种,我只介绍自己知道的两种. 1,通过APPIUM工具添加APK包后,会自动显示出来. 2,打开UI AUTOMATOR VIEWER 定位工具,随便指向一个定 ...
- C++之string面试问题
1.指针变量指向字符串常量的问题 代码如下: "; 问p[0]=2;是否可以?原因? 答案:不可以.“123456”是字符串常量,存储在常量区,其值不可更改. 2.sizeof求字符串长度问 ...
- 【C++】清空一个C++栈的快速方法
来源:https://stackoverflow.com/questions/40201711/how-can-i-clear-a-stack-in-c-efficiently/40201744 传统 ...