php - 如何将mysql更改为mysqli?

标签 php mysql mysqli

根据下面我用于常规 mysql 的代码,如何将其转换为使用 mysqli?

就如将mysql_query($sql);改为mysqli_query($sql);那么简单吗?

<?PHP

//in my header file that is included on every page I have this
$DB["dbName"] = "emails";
$DB["host"] = "localhost";
$DB["user"] = "root";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster.<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// end header connection part

// function from a functions file that I run a mysql query through in any page.
function executeQuery($sql) {
    $result = mysql_query($sql);
    if (mysql_error()) {
        $error = '<BR><center><font size="+1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review</font></center><br>';
        if ($_SESSION['auto_id'] == 1) {
            $sql_formatted = highlight_string(stripslashes($sql), true);
            $error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The MySQL Error Returned</b><br>' . mysql_error();
        }
        die($error);
    }
    return $result;
}

// example query ran on anypage of the site using executeQuery function
$sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
if($line_member=mysql_fetch_array($result_member)){
    extract($line_member);
} else {
    header("location: index.php");
    exit;
}
?>

最佳答案

首先要做的可能是将每个 mysql_* 函数调用替换为其等效的 mysqli_*,至少如果您愿意使用过程 API - - 这将是更简单的方法,考虑到您已经有一些基于 MySQL API 的代码,这是一个程序代码。

为了帮助解决这个问题,the MySQLi Extension Function Summary绝对是有用的。

例如:

注意:对于某些功能,您可能需要仔细检查参数:也许这里和那里有一些差异 - 但不是很多,我会说:mysql和mysqli都是基于相同的库 (libmysql ; 至少对于 PHP <= 5.2)

例如:

  • 使用 mysql,你必须使用 mysql_select_db连接后,指示您要在哪个数据库上进行查询
  • 另一方面,mysqli 允许您将该数据库名称指定为mysqli_connect 的第四个参数。 .
  • 不过,还有一个 mysqli_select_db您可以根据需要使用的功能。

完成后,尝试执行新版本的脚本...并检查一切是否正常;如果不是……是时候寻找错误了 ;-)

关于php - 如何将mysql更改为mysqli?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1390607/

相关文章:

php - MYSQLI 只返回 1 个值,而有 2 个

php - 动态生成的表单无法正常工作

php - 在 while 循环之外访问变量

php - 如何使用 apache 为 PHP 提供服务并为静态页面使用 nginx

mysql - 这个 mysql 查询语法有什么问题?

php - 在一行中添加一个新值,与旧值相邻,并用逗号分隔

php - 如何在 PHP、HTML 标签中回显

mysql - Codeigniter Active Record - 时间戳的时间大于

mysql - 使用 PetaPoco Database.Insert<T> 插入 mysql 时出现问题

php - 使用 mysqli 检索数组