phpは単一の例のモードに基づいてmysql種類の完備している実例を包装します。


本論文の例は、phpが単一のモードに基づいてmysqlクラスをカプセル化することを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
クラス:

<?php
header("content-type:text/html;charset=utf-8");
//     
/*
             
(1)       -         new        
(2)       -                  
(3)       -         clone       
(4)       -               
*/
class db{
  //    
  //       
  private static $dbcon=false;
  //       
  private function __construct(){
  $dbcon=@mysql_connect("localhost","root","root");
   mysql_select_db("small2",$dbcon) or die("mysql_connect error");
   mysql_query("set names utf8");
  }
  //       
  private function __clone(){}
  //       
  public static function getIntance(){
   if(self::$dbcon==false){
    self::$dbcon=new self;
   }
   return self::$dbcon;
  }
  //    
  public function p($arr){
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
  }
  public function v($arr){
  echo "<pre>";
    var_dump($arr);
    echo "</pre>";
  }
  //    
  public function query($sql){
  $query=mysql_query($sql);
   return $query;
  }
  /**
  *       
  * @param
  * @return string or int
  */
  public function getOne($sql){
   $query=$this->query($sql);
    return mysql_result($query,0);
  }
  //      ,return array     
  public function getRow($sql,$type="assoc"){
   $query=$this->query($sql);
   if(!in_array($type,array("assoc",'array',"row"))){
     die("mysql_query error");
   }
   $funcname="mysql_fetch_".$type;
   return $funcname($query);
  }
  //      ,              
  public function getFormSource($query,$type="assoc"){
  if(!in_array($type,array("assoc","array","row")))
  {
    die("mysql_query error");
  }
  $funcname="mysql_fetch_".$type;
  return $funcname($query);
  }
  //      ,    
  public function getAll($sql){
   $query=$this->query($sql);
   $list=array();
   while ($r=$this->getFormSource($query)) {
    $list[]=$r;
   }
   return $list;
  }
  //        id
  public function getInsertid(){
   return mysql_insert_id();
  }
   /**
   *          
   * @param string $table   
   * @param string orarray $data [  ]
   * @return int      id
   */
   public function insert($table,$data){
   //    ,            
   $key_str='';
   $v_str='';
   foreach($data as $key=>$v){
    if(empty($v)){
     die("error");
   }
      //$key        s         
      $key_str.=$key.',';
      $v_str.="'$v',";
   }
   $key_str=trim($key_str,',');
   $v_str=trim($v_str,',');
   //        
   $sql="insert into $table ($key_str) values ($v_str)";
   $this->query($sql);
 //           ID 
   return mysql_insert_id();
 }
 /*
  *         
  * @param1 $table, $where=array('id'=>'1')      
  * @return       
  */
  public function deleteOne($table, $where){
    if(is_array($where)){
      foreach ($where as $key => $val) {
        $condition = $key.'='.$val;
      }
    } else {
      $condition = $where;
    }
    $sql = "delete from $table where $condition";
    $this->query($sql);
    //        
    return mysql_affected_rows();
  }
  /*
  *         
  * @param1 $table, $where      
  * @return       
  */
  public function deleteAll($table, $where){
    if(is_array($where)){
      foreach ($where as $key => $val) {
        if(is_array($val)){
          $condition = $key.' in ('.implode(',', $val) .')';
        } else {
          $condition = $key. '=' .$val;
        }
      }
    } else {
      $condition = $where;
    }
    $sql = "delete from $table where $condition";
    $this->query($sql);
    //        
    return mysql_affected_rows();
  }
 /**
  * [    description]
  * @param [type] $table [  ]
  * @param [type] $data [  ]
  * @param [type] $where [  ]
  * @return [type]
  */
 public function update($table,$data,$where){
   //    ,            
   $str='';
  foreach($data as $key=>$v){
   $str.="$key='$v',";
  }
  $str=rtrim($str,',');
  //  SQL  
  $sql="update $table set $str where $where";
  $this->query($sql);
  //        
  return mysql_affected_rows();
 }
}
?>

テスト:

//mysql  
//$db=db::getIntance();
//var_dump($db);
/*$sql="select * from acticle";
$list=$db->getAll($sql);
$db->p($list);*/
/*$sql="select * from acticle where acticle_id=95";
$list=$db->getRow($sql);
$db->p($list);
*/
/*$sql="select title from acticle";
$list=$db->getOne($sql);
$db->p($list);*/
//$list=$db->insert("users",$_POST);
//$del=$db->deleteOne("users","id=26");
//$del=$db->deleteAll("users","id in(23,24)");
//$up=$db->update("users",$_POST,"id=27");
//$id=$db->getInsertid();
//print_R($id);

PHPについてもっと興味のある読者は、本駅のテーマを見てもいいです。「php+mysqlデータベース操作入門教程」、「PHP基本文法入門教程」、「PHP演算と演算子の使い方のまとめ」、「php対象プログラム設計入門教程」、「PHPネットワークプログラミング技術のまとめ」、「PHP配列(Aray)操作テクニック大全」、「php文字列(string)使い方のまとめ」および「phpよくあるデータベースの操作技巧のまとめ
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。