如何打开数据库连接和。 Mysqli中的重要功能

时间:2015-09-12 11:59:52

标签: php mysql mysqli

这是我的数据库配置 它的扩展是Mysql。我想改变它对Mysqli的扩展。请帮助我。谢谢提前。我想改变它,因为MySQL EXTENSION在最新的PHP中不再可用 class CMySQL {

// variables
var $sDbName;
var $sDbUser;
var $sDbPass;

var $vLink;

// constructor
function CMySQL() {
    $this->sDbName = 'YOUR_DB_NAME';
    $this->sDbUser = 'DB_USER_NAME';
    $this->sDbPass = 'DB_USER_PASS';

    // create db link
    $this->vLink = mysql_connect("localhost", $this->sDbUser, $this->sDbPass);

    //select the database
    mysql_select_db($this->sDbName, $this->vLink);

    mysql_query("SET names UTF8");
}

// return one value result
function getOne($query, $index = 0) {
    if (! $query)
        return false;
    $res = mysql_query($query);
    $arr_res = array();
    if ($res && mysql_num_rows($res))
        $arr_res = mysql_fetch_array($res);
    if (count($arr_res))
        return $arr_res[$index];
    else
        return false;
}

// executing sql
function res($query, $error_checking = true) {
    if(!$query)
        return false;
    $res = mysql_query($query, $this->vLink);
    if (!$res)
        $this->error('Database query error', false, $query);
    return $res;
}

// return table of records as result in pairs
function getPairs($query, $sFieldKey, $sFieldValue, $arr_type = MYSQL_ASSOC) {
    if (! $query)
        return array();

    $res = $this->res($query);
    $arr_res = array();
    if ($res) {
        while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
            $arr_res[$row[$sFieldKey]] = $row[$sFieldValue];
        }
        mysql_free_result($res);
    }
    return $arr_res;
}

// return table of records as result
function getAll($query, $arr_type = MYSQL_ASSOC) {
    if (! $query)
        return array();

    if ($arr_type != MYSQL_ASSOC && $arr_type != MYSQL_NUM && $arr_type != MYSQL_BOTH)
        $arr_type = MYSQL_ASSOC;

    $res = $this->res($query);
    $arr_res = array();
    if ($res) {
        while ($row = mysql_fetch_array($res, $arr_type))
            $arr_res[] = $row;
        mysql_free_result($res);
    }
    return $arr_res;
}

// return one row result
function getRow($query, $arr_type = MYSQL_ASSOC) {
    if(!$query)
        return array();
    if($arr_type != MYSQL_ASSOC && $arr_type != MYSQL_NUM && $arr_type != MYSQL_BOTH)
        $arr_type = MYSQL_ASSOC;
    $res = $this->res ($query);
    $arr_res = array();
    if($res && mysql_num_rows($res)) {
        $arr_res = mysql_fetch_array($res, $arr_type);
        mysql_free_result($res);
    }
    return $arr_res;
}

// escape
function escape($s) {
    return mysql_real_escape_string($s);
}

// get last id
function lastId() {
    return mysql_insert_id($this->vLink);
}

// display errors
function error($text, $isForceErrorChecking = false, $sSqlQuery = '') {
    echo $text; exit;
}

}

$ GLOBALS ['MySQL'] =新的CMySQL();

1 个答案:

答案 0 :(得分:0)

mysqli以面向对象的方式处理所有功能。
例如,

$this->vLink = new mysqli("localhost", $this->sDbUser, $this->sDbPass,$this->sDbName);

但是随着面向对象的方法,mysqli程序方法也存在,其中只有mysqli而不是mysql到处都有。但我个人建议你采用面向对象的方法。
你可以看到其他重要的函数以及旧的mysql函数here