前言

第一次接触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;
    }

}

?>

相关文章: