前言
第一次接触PHP,功能需求很简单:负责提供WEB接口,接收数据,然后与数据库交互,最终响应XML结果。过程中接触了PHP的很多常用语法和功能,比如PDO对数据库的操作、XML操作、面向对象、正则表达式、输出输出......等等。基本是上网搜索示例,然后自己摸索着写代码,因为N年来一直写的是.Net,所以项目过程中受到.Net很大影响,用了三层构架,甚至为每个PHP接口写了一个类似CodeBehind的Class,没有时间了解PHP下的开发框架,完全按自己的想法搭建的项目。在此篇随笔记录,以便以后备忘查询,也希望得到PHP专业人士的指点。
DAL
原本是想封装个DBUtility的类,但几天时间无法对PDO了解的全面和应用自如,只得把数据库相关操作混合在DAL中。
<?php
/************************************************************
DAL
wujian 2010-01-19
************************************************************/
define("DB_BASIC", "mysql:host=localhost;dbname=asterisk");
define("DB_USER","root");
define("DB_PSWD", "root");
class DAL
{
private static $pdo;
//构造函数
public function __construct()
{
//
}
//判断分组是否存在
public function GroupExist($grpid)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT COUNT(*) FROM extension_group WHERE `grp_id` = ".$grpid;
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
if($arr[0][0] == 1)
{
return true;
}
else
{
return false;
}
}
//判断分机是否存在
public function ExtensionExist($etn)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT COUNT(*) FROM extension_email WHERE `etn` = '".$etn."'";
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
if($arr[0][0] == 1)
{
return true;
}
else
{
return false;
}
}
//添加分机(分机号,分组ID,EMAIL,名称,备注)
public function ExtensionAdd($etn, $grpid, $email, $name, $desc)
{
/*prepare方式
$stmt = $this->pdo->prepare("INSERT INTO extensionemail (`etn`, `grp_id`, `email`, `nm`, `desc`) VALUES (:a, :b, :c, :d, :e)");
$stmt->bindParam(':a', $etn);
$stmt->bindParam(':b', $grpid);
$stmt->bindParam(':c', $email);
$stmt->bindParam(':d', $name);
$stmt->bindParam(':e', $desc);
$stmt->execute();
*/
/*exec方式*/
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "INSERT INTO extension_email (`etn`, `grp_id`, `email`, `nm`, `desc`) VALUES ('".$etn."', ".$grpid.", '".$email."', '".$name."', '".$desc."')";
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//更新分机(分机号,分组ID,EMAIL,名称,备注)
public function ExtensionEdit($etn, $grpid, $email, $name, $desc)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "UPDATE extension_email SET `grp_id` = ".$grpid.", `email` = '".$email."', `nm` = '".$name."', `desc` = '".$desc."' WHERE `etn` = ".$etn;
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//激活分机
public function ExtensionAct($etn, $state)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "UPDATE extension_email SET `state` = ".$state.", `reg_time` = CURRENT_TIMESTAMP() WHERE `etn` = ".$etn;
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//分机列表
public function ExtensionList($grpid)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT * FROM extension_email WHERE `grp_id` = ".$grpid;
if($grpid == 0)
{
$cmd = "SELECT * FROM extension_email";
}
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
return $arr;
}
//分组列表
public function GroupList()
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT * FROM extension_group";
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
return $arr;
}
}
?>
/************************************************************
DAL
wujian 2010-01-19
************************************************************/
define("DB_BASIC", "mysql:host=localhost;dbname=asterisk");
define("DB_USER","root");
define("DB_PSWD", "root");
class DAL
{
private static $pdo;
//构造函数
public function __construct()
{
//
}
//判断分组是否存在
public function GroupExist($grpid)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT COUNT(*) FROM extension_group WHERE `grp_id` = ".$grpid;
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
if($arr[0][0] == 1)
{
return true;
}
else
{
return false;
}
}
//判断分机是否存在
public function ExtensionExist($etn)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT COUNT(*) FROM extension_email WHERE `etn` = '".$etn."'";
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
if($arr[0][0] == 1)
{
return true;
}
else
{
return false;
}
}
//添加分机(分机号,分组ID,EMAIL,名称,备注)
public function ExtensionAdd($etn, $grpid, $email, $name, $desc)
{
/*prepare方式
$stmt = $this->pdo->prepare("INSERT INTO extensionemail (`etn`, `grp_id`, `email`, `nm`, `desc`) VALUES (:a, :b, :c, :d, :e)");
$stmt->bindParam(':a', $etn);
$stmt->bindParam(':b', $grpid);
$stmt->bindParam(':c', $email);
$stmt->bindParam(':d', $name);
$stmt->bindParam(':e', $desc);
$stmt->execute();
*/
/*exec方式*/
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "INSERT INTO extension_email (`etn`, `grp_id`, `email`, `nm`, `desc`) VALUES ('".$etn."', ".$grpid.", '".$email."', '".$name."', '".$desc."')";
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//更新分机(分机号,分组ID,EMAIL,名称,备注)
public function ExtensionEdit($etn, $grpid, $email, $name, $desc)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "UPDATE extension_email SET `grp_id` = ".$grpid.", `email` = '".$email."', `nm` = '".$name."', `desc` = '".$desc."' WHERE `etn` = ".$etn;
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//激活分机
public function ExtensionAct($etn, $state)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "UPDATE extension_email SET `state` = ".$state.", `reg_time` = CURRENT_TIMESTAMP() WHERE `etn` = ".$etn;
$s = $this->pdo->exec($cmd);
$this->pdo = null;
if($s == 1){
return true;
}
else{
return false;
}
}
//分机列表
public function ExtensionList($grpid)
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT * FROM extension_email WHERE `grp_id` = ".$grpid;
if($grpid == 0)
{
$cmd = "SELECT * FROM extension_email";
}
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
return $arr;
}
//分组列表
public function GroupList()
{
$this->pdo = new PDO(DB_BASIC, DB_USER, DB_PSWD);
$cmd = "SELECT * FROM extension_group";
$rs = $this->pdo->query($cmd);
$arr = $rs->fetchAll();
$this->pdo = null;
return $arr;
}
}
?>