php - 如何将下面这段代码中的mysql修改为mysqli?
黄舟
黄舟 2017-04-10 17:59:17
[PHP讨论组]

服务器升级到了PHP,但是使用的PHP代码中使用的是mysql_connet链接数据库,自己尝试着修改,但是还是妨碍吸纳问题。

function _makeConnection() 
    {
        $this->logBenchmark('_makeConnection() {');
        
        $connected = false;
        if (@mysql_connect($this->db['server'],$this->db['username'],$this->db['password']))
        {
            if (@mysql_select_db($this->db['database']))
            {
                $connected = true;
            }
            else
            {
                $this->logError('MySQL Error: '.mysql_error().'. ('.mysql_errno().')', 2);
            }
        }
        else
        {
            $this->logError('MySQL Error: '.mysql_error().'. ('.mysql_errno().')', 2);
        }
        if (!$connected)
        {
            $this->logErrorNote('

Mint was unable to connect to the database. Please make sure that the correct values have been added to /config/db.php.

'); } $this->logBenchmark('}'); return $connected; } function query($query) { $this->logBenchmark('query("'.substr($query, 0, 24).'...") {'); $this->queries[] = $query; if (!($result = mysqli_query($query))) { $this->logError('MySQL Error: '.mysqli_error().'. ('.mysqli_errno().')
Query: '.$query); $result = false; } $this->logBenchmark('}'); return $result; }

修改后的代码:

    function _makeConnection() 
    {
        $this->logBenchmark('_makeConnection() {');
        
        $connected = false;
        if (@mysqli_connect($this->db['server'],$this->db['username'],$this->db['password'],$this->db['database']))
        {
            $connected = true;
        }
        else
        {
            $this->logError('MySQL Error: '.mysqli_error().'. ('.mysqli_errno().')', 2);
        }
        if (!$connected)
        {
            $this->logErrorNote('

Mint was unable to connect to the database. Please make sure that the correct values have been added to /config/db.php.

'); } $this->logBenchmark('}'); return $connected; } function query($query) { $this->logBenchmark('query("'.substr($query, 0, 24).'...") {'); $this->queries[] = $query; if (!($result = mysqli_query($query))) { $this->logError('MySQL Error: '.mysqli_error().'. ('.mysqli_errno().')
Query: '.$query); $result = false; } $this->logBenchmark('}'); return $result; }

错误原因,mysqli_query需要传递2个参数,$link和$query,但是原始方法中并没有传入$link

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
迷茫
$link = @mysqli_connect(...)
天蓬老师

mysqli使用实例
参考:http://php.net/manual/zh/book...

//面向对象风格
$mysqli = new mysql("localhost", "root", "", "test");
if(mysqli_connect_error()){
    //数据库链接错误
    unset($mysqli);
    die(mysqli_connect_error());
}

$query = "SELECT * FROM `user`"
$result = $mysqli->query($query);
if($result){
    while($row = $result->fetch_row()){
        //...
    }
    $result->free();
}else{
    //执行sql语句失败
    die($mysqli->error);
}
$mysqli->close();
//过程化风格
$mysqli = mysqli_connect("localhost", "root", "", "test");
if(mysqli_connect_error()){
    //数据库连接错误
    unset($mysqli);
    die(mysqli_connect_error());
}

$query = "SELECT * FROM `user`"
$result = $mysqli_query($mysqli,$query);
if($result){
    while($row = mysqli_fetch_row($result)){
        //...
    }
    mysqli_free_result($result);
}else{
    //执行sql语句失败
    die(mysqli_error($mysqli));
}
mysqli_close($mysqli);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号