gpt4 book ai didi

php - 将脚本转换为 MySQLi

转载 作者:行者123 更新时间:2023-11-29 12:11:32 26 4
gpt4 key购买 nike

我刚刚在网上找到了以下脚本,但正在寻求帮助来编辑它,因为我知道这些功能中的大多数不再可用,并且我不确定我需要更改什么以及我不需要更改什么这个脚本可以与 MySQLi 一起使用吗?

header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type, Content-Language, Authorization');
header('Access-Control-Expose-Headers: Authorization');

# CONFIG
define('_DB_HOST', 'mysql.co.uk');
define('_DB_NAME', 'main');
define('_DB_USER', 'admin');
define('_DB_PASS', 'password');

# DB CONNECT
$connection = mysql_connect(_DB_HOST, _DB_USER, _DB_PASS) or die ('Unable to connect to MySQL server.<br ><br >Please make sure your MySQL login details are correct.');
$db = mysql_select_db(_DB_NAME, $connection) or die ('request "Unable to select database."');

# ACTION
$keys = isset($_REQUEST['keys'])?$_REQUEST['keys']:array();
if (!is_array($keys)){
$keys = array($keys);
}
$keys = array_filter($keys);

# RESULT
$unavailable = array();
if (!empty($keys)){
$sql = "SELECT * FROM calendar WHERE DATE_FORMAT(date, '%Y-%m') IN ('".implode("', '", $keys)."')";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
$unavailable[] = $row['date'];
}
}
echo(json_encode($unavailable));
exit();

最佳答案

我过去做过一个从mysql到mysqli的大型项目转换,这确实不是很困难。对于初学者来说,mysqli 库允许您使用面向对象风格或过程风格,并且过程风格与旧的 mysql 函数非常匹配。

我认为向您展示自己转换所有代码是多么容易,而不是为您转换所有代码更有值(value)。关键是要习惯 php 文档,它们是你的 friend !

对于您在代码中找到的每个 mysql_* 函数,请在 php.net 上查找 mysql 版本和 mysqli 版本,并比较每个函数期望的参数以及返回类型。有许多 mysqli 过程式函数可以简单地更改参数的顺序。

例如,代码中的第一个 mysql_* 函数是 mysql_connect。正在查看the documentation ,该函数期望接收主机、用户名和密码(加上一些可选参数)。在该页面上,在它建议 mysqli_connect 的链接后面,我们看到它是 mysqli::__construct 的别名。因此,点击我们最终看到它还需要主机、用户名和密码。因此,您可以继续执行此操作,只需将缺少的“i”添加到函数调用中即可。

接下来,对于mysql_select_db,它需要数据库名称和指向数据库连接链接的可选链接。对于mysqli_select_db,它需要连接链接,然后是数据库名称。很简单,只需交换参数的顺序即可将该调用转换为 mysqli。 (请注意,在mysqli_connect中,它需要一个可选的第四个参数,您可以在其中指定数据库名称,并根据需要跳过执行mysqli_select_db的步骤。)

尝试使用文档转换一些其他函数,如果您遇到问题,请发布您的新代码,我会尽力提供帮助。

关于php - 将脚本转换为 MySQLi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com