シングルトンパターンを使用してmysqlクラスを実装する
リリース: 2016-07-25 08:45:23
-
-
- define('ACC')||exit('Access Denied');
- // 接続関数とクエリ関数を含む mysql 操作クラスをカプセル化します
- class mysql extends absdb{
- protected static $ins = null;
- protected $host; // ホスト名
- protected $user; // パスワード
- protected $db; // データベース名
- protected $port; protected $conn = null;
- // 内部操作、オブジェクトを取得します
- public static function getIns() {
- if(self::$ins === null) {
- self::$ins = new self() ;
- }
- $conf = conf::getIns();
- self::$ins->host = $conf->host;
- self::$ins->user = $conf->user; ::$ins->passwd = $conf->pwd;
- self::$ins->db = $conf->db;
- self::$ins->port = $conf->ポート;
- self::$ins->connect();
- self::$ins->select_db();
- self::$ins->setChar();
- return self::$ins ;
- }
- // 外部の新しい操作を許可しません。
- protected function __construct() {
-
- }
- // データベースに接続します
- public function connect() {
- $this->conn = @mysql_connect($this-> ;host,$this->user,$this->passwd,$this->port);
- if(!$this->conn) {
- $error = new Exception('データベースに接続できません' ,9);
- throw $error;
- }
- }
- // SQL クエリを送信します
- public function query($sql) {
- $rs = mysql_query($sql,$this->conn);
- if(! $ rs) {
- log::write($sql);
- }
- return $rs;
- }
- // getAll メソッドをカプセル化します
- // パラメータ: $sql
- // 戻り値: array,false
- public function getAll( $ sql) {
- $rs = $this->query($sql);
- if(!$rs) {
- return false;
- }
- $list = array();
- while($row = mysql_fetch_assoc($ rs )) {
- $list[] = $row;
- }
- return $list;
-
- }
- // getRow メソッドをカプセル化します
- // パラメータ: $sql
- // 戻り値: array,false
- public function getRow( $ sql) {
- $rs = $this->query($sql);
- if(!$rs) {
- return false;
- }
- return mysql_fetch_assoc($rs);
- }
- // getOne メソッドをカプセル化する,
- // パラメーター: $sql
- // 戻り値: int、str (単一値)
- public function getOne($sql) {
- $rs = $this->query($sql);
- if(!$rs ) {
- return false;
- }
- $tmp = mysql_fetch_row($rs);
- return $tmp[0];
- }
- // apply_rows() メソッドをカプセル化します
- // パラメータ: なし
- // 影響を受ける int を返します行数
- public function inspired_rows() {
- return mysql_affected_rows($this->conn);
- }
- // 最後に生成された auto_increment 列の値を返します
- public function last_id() {
- return mysql_insert_id($this->) ; conn);
- }
- // ライブラリ関数を選択します
- public function select_db() {
- $sql = 'use ' . $this->db;
- return $this->query($sql);
- }
- // 文字セットを設定する関数
- public function setChar() {
- $sql = 'set names utf8';
- return $this->query($sql);
- }
- // insert ステートメント、update ステートメント、およびそれらを実行します
- public function autoExecute($data,$table,$act='insert',$where='') {
-
- if($act == 'insert') {
- $sql = 'insert into ' $テーブル . ' (';
- $sql .= implode(',',(array_keys($data)));
- $sql .= ') 値 ('';
- $sql .= implode("', '",array_values ($data));
- $sql .= "')";
- } else if($act == 'update') {
- if(!trim($where)) {
- return false;
- }
-
- $ sql = 'update ' . $table . ' set ';
- foreach($data as $k=>$v) {
- $sql .= $k;
- $sql .= '=';
- $sql .= "'".$v."',";
- }
-
- $sql = substr($sql,0,-1);
- $sql .= ' where ';
- $sql .= $where ;
- } else {
- return false;
- }
- //return $sql;
- return $this->query($sql);
-
- }
- }
-
-
-
- コードをコピー
|
mysql
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31