面向對象的mysql數據庫操作php類

jphp 10年前發布 | 2K 次閱讀 PHP

<?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;
}

} ?></pre>

 本文由用戶 jphp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!