当前位置 : 主页 > 网络编程 > PHP >

面向对象的mysql数据库操作php类

来源:互联网 收集:自由互联 发布时间:2021-07-03
?phpclass database { var $host = NULL; var $username = NULL; var $password = NULL; var $databaseName = NULL; var $link = NULL; var $queries = NULL; var $errors = NULL; var $databaseExtras = NULL; function __construct($host, $username, $pass
<?php
class database {
  
    var $host = NULL;
    var $username = NULL;
    var $password = NULL;
    var $databaseName = NULL;
    var $link = NULL;
    var $queries = NULL;
    var $errors = NULL;
  
    var $databaseExtras = NULL;
  
    function __construct($host, $username, $password, $database) {
        $this->database($host, $username, $password, $database);
    }
  
    function database($host, $username, $password, $database) {
        /*$this->database = array (
                "host" => $host,
                "username" => $username,
                "password" => $password,
                "database" => $database,
                "link" => "",
                "queries" => array (),
                "errors" => array ()
            );*/
  
        $this->host = $host;
        $this->username = $username;
        $this->password = $password;
        $this->databaseName = $database;
        $this->link = "";
        $this->queries = array ();
        $this->errors = array ();
  
        $this->databaseExtras = new stdClass;
  
        $this->link = mysql_connect($this->host, $this->username, $this->password) or die("Could not connect to Database");
        mysql_select_db($this->databaseName);
    }
  
    function justquery($sql) {
        $this->queries[] = $sql;
        return mysql_query($sql, $this->link);
    }
  
    function loadResult($sql) {
        if (!($cur = $this->justquery($sql))) {
            return null;
        }
        $ret = null;
        if ($row = mysql_fetch_row( $cur )) {
            $ret = $row[0];
        }
        mysql_free_result( $cur );
        return $ret;
    }
  
    function loadFirstRow($sql) {
        if (!($cur = $this->justquery($sql))) {
            return null;
        }
        $ret = null;
        if ($row = mysql_fetch_object( $cur )) {
            $ret = $row;
        }
        mysql_free_result( $cur );
        return $ret;
    }
  
    function insertid() {
        return mysql_insert_id( $this->link );
    }
  
    function query($sql, $key = "", $returns = true, $batch = false) {
        $result = array ();
  
        switch ($batch) {
            default:
            case true:
                foreach ($sql as $index => $query) {
                    $this->queries[] = $query;
                    $answer = mysql_query($query, $this->link);
  
                    if (!$answer) {
                        $this->errors[] = mysql_error($this->link);
                    }
                    else {
                        if ($returns != false) {
                            if (mysql_num_rows($answer) > 0){
                                while ($row = mysql_fetch_object($answer)) {
                                    if ($key != ""){
                                        $result[$index][$row->$key] = $row;
                                    }
                                    else {
                                        $result[$index][] = $row;
                                    }
                                }
                            } else {}
                        } else {}
                    }
                }
                break;
  
            case false:
                $this->queries[] = $sql;
                $answer = mysql_query($sql, $this->link);
  
                if (!$answer) {
                    $this->errors[] = mysql_error($this->link);
                    $result = false;
                }
                else {
                    if ($returns != false) {
                        if (mysql_num_rows($answer) > 0){
                            while ($row = mysql_fetch_object($answer)) {
                                if ($key != ""){
                                    $result[$row->$key] = $row;
                                }
                                else {
                                    $result[] = $row;
                                }
                            }
                        } else {}
                    }
                    else {
                        $result = true;
                    }
                }
                break;
        }
  
        return $result;
    }
  
    function loadObject( $sql, &$object ) {
        if ($object != null) {
            if (!($cur = $this->justquery($sql))) {
                return false;
            } else {}
            if ($array = mysql_fetch_assoc( $cur )) {
                mysql_free_result( $cur );
                $this->bindArrayToObject( $array, $object);
                return true;
            }
            else {
                return false;
            }
        }
        else {
            if ($cur = $this->justquery($sql)) {
                if ($object = mysql_fetch_object( $cur )) {
                    mysql_free_result( $cur );
                    return true;
                }
                else {
                    $object = null;
                    return false;
                }
            }
            else {
                return false;
            }
        }
    }
  
    function bindArrayToObject( $array, &$obj) {
        if (!is_array( $array ) || !is_object( $obj )) {
            return (false);
        }
  
        foreach (get_object_vars($obj) as $k => $v) {
            if( substr( $k, 0, 1 ) != '_' ) {
                $ak = $k;
                if (isset($array[$ak])) {
                    $obj->$k = $array[$ak];
                }
            }
        }
  
        return true;
    }
  
    function formatCSVCell($data) {
        $useQuotes = false;
  
        $quotable = array (
                "\"" => "\"\"",
                "," => ",",
                "\n" => "\n"
            );
  
        foreach ($quotable as $char => $repl) {
            if (eregi($char, $data)) {
                $useQuotes = true;
            } else {}
        }
  
        if ($useQuotes == true) {
            foreach ($quotable as $char => $repl) {
                $data = str_replace($char, $repl, $data);
            }
  
            $data = "\"" . $data . "\"";
        }
        else {
  
        }
  
        return $data;
    }
}
?>
网友评论