我正在使用以下 php 代码来检查 MySQL 连接数
$connection=mysql_connect("localhost","$mysql_user","$mysql_pwd");
if (mysqli_connect_errno())
{ echo "NO CONNECTION"; }
else
{
unset ($result);
$result = mysql_list_processes($connection);
while ($row = mysql_fetch_assoc($result)){
$mysql_data[]=$row["db"];
}
mysql_free_result($result);
$n_connections=count($mysql_data)-1;
}
echo "$n_connections";
Run Code Online (Sandbox Code Playgroud)
由于 mysql_connect 在 PHP 5.5.0 中已被弃用,因此我将 $connection 更改为
$connection=mysqli_connect("localhost","$mysql_user","$mysql_pwd", "$mysql_db");
Run Code Online (Sandbox Code Playgroud)
进行此更改后,$n_connections 不再返回正确的值,代码中有什么问题?
谢谢
注意:php.net 中的 mysqli_list_processes 函数没有帮助,我尝试了它,但它不起作用。
注2:这篇文章不是“如何将mysql更改为mysqli?”的重复。,我的问题是替换“$result = mysql_list_processes($connection);”
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 …Run Code Online (Sandbox Code Playgroud) 我刚刚开始了一个旧项目,我需要做的第一件事就是从mysql_*扩展迁移到mysqli_*一个.我以前没有使用过很多PHP ...新代码的大部分都可以工作但是在下面的例子中我似乎搞砸了......
旧功能:
function user_id_from_username($username) {
$username = sanitize($username);
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
}
Run Code Online (Sandbox Code Playgroud)
新功能(无功能):
function user_id_from_username($username) {
$username = sanitize($username);
$id = mysqli_query(connect(),"SELECT `user_id` FROM `users` WHERE `username` = '$username'");
return $id;
}
Run Code Online (Sandbox Code Playgroud)
另一个旧的:
function login($username, $password) {
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
}
Run Code Online (Sandbox Code Playgroud)
而新的: …
我创建了一个清除已发布标题的函数.
function title_var($title_variable) {
$title_variable = mysql_real_escape_string(ucwords(strtolower(trim(htmlspecialchars($title_variable, ENT_QUOTES)))));
return stripslashes($title_variable);
}
Run Code Online (Sandbox Code Playgroud)
我现在需要能够在()或[]全部大写之间做任何事情.例如"我的公司名称(cbs)limited"或"我的公司名称[cbs] limited",变为"我的公司名称(CBS)有限公司","CBS"在所有首都.
我已经完成了将所有单词设为大写的第一部分,我只需要在括号之间进行任何设置.