Php 不会在未来几天推广一些 MySql 功能。
PHP 手册中有一些关于清除不推荐使用的函数的示例。但例如; 当我更换mysql_query用mysqli_query在下面的代码无法正常工作。Notepad++ 也将它们视为由我自己定义的函数。所有示例均使用 PHP 手册中的 OOP。我需要一个不使用面向对象编程的示例。
有人能告诉我如何从不推荐使用的 mysql 函数中清除我的代码吗?
function db_connect_select()
{
$connection = @mysql_connect(MYSQL_HOSTNAME, USERNAME_SELECT, PASSWORD);
if (!$connection)
{
return false;
}
if (!mysql_select_db(DATABASE))
{
return false;
}
mysql_query("SET NAMES UTF8");
return $connection;
}
function db_result_to_array($result)
{
$res_array = array();
for ($count = 0; $row = mysql_fetch_array($result); $count++)
{
$res_array[$count] = $row;
}
return $res_array;
}
function select_top_tags()
{
$connection = db_connect_select();
$query = 'SELECT * FROM top_tags ORDER BY tag_name ASC';
$result = db_result_to_array(mysql_query($query));
if(mysql_ping($connection))
{
mysql_close($connection);
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)
这将毫无意义。
单纯的机械更换是没有用的。
你必须明白,这不是旧函数本身,而是不鼓励使用它们的旧方法。
因此,如果您想保持当前代码不变 - 只需保留它。
手册中的红框并没有那么可怕,这些功能实际上会引发弃用级别错误的版本尚未出炉。
所以,在你遇到任何不便之前,你还有 3-4 年的时间。即便如此,关闭弃用级别的错误也是一个运行时设置的问题。
但是如果你想写出更好的代码——你必须使用PDO 的OOP 方式(我可以向你保证 OOP 并没有那么可怕。虽然它在编写时需要一些知识,但使用现成的类非常容易。与熟悉的功能唯一的区别是一点点->。没什么大不了的)
所以,给你:
function db_connect_select()
{
$dsn = 'mysql:host='.MYSQL_HOSTNAME.';dbname='.DATABASE.';charset=utf8';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
return new PDO($dsn,USERNAME_SELECT, PASSWORD, $opt);
}
function db_result_to_array($query,)
{
// not needed with PDO
}
function select_top_tags()
{
global $pdo;
$query = 'SELECT * FROM top_tags ORDER BY tag_name ASC';
$stm = $pdo->prepare($query);
$stm->execute();
return $stm->fetchAll();
}
Run Code Online (Sandbox Code Playgroud)
用法:
$pdo = db_connect_select(); // somewhere in a bootstrap file
$tags = select_top_tags();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14644 次 |
| 最近记录: |