【问题标题】:PHP Deprecated: mysql_connect(): [duplicate]PHP 已弃用:mysql_connect():[重复]
【发布时间】:2017-04-12 11:16:05
【问题描述】:

由于服务器软件升级,我有一个过时的 php/mysql 脚本无法运行。

以下是错误日志中的几行:

[03-Apr-2017 04:05:16 UTC] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead start.php on line 18
[03-Apr-2017 04:05:16 UTC] PHP Deprecated:  Function mysql_numrows() is deprecated in library.php on line 135

从第 18 行开始

$connection=mysql_connect($sqlserver,$db_login,$db_pass) or die('Could not connect to the database server'); 
$db = mysql_select_db($db_name, $connection) or die ("Unable to select database."); 


$sql="SELECT IP,Date FROM users WHERE IP='$IP' ORDER BY Date DESC LIMIT 1";

这是从第 135 行开始

for($i=0;$i<mysql_numrows($result);$i++){
        for($j=0;$j<mysql_num_fields($result);$j++){
                        $ranges[$i][mysql_field_name($result,$j)] = mysql_result($result,$i,mysql_field_name($result,$j));
                    }//end inner loop
                }//end outer loop

我不是程序员,这个问题可以通过查找替换来解决吗?

如果更改不起作用,还需要哪些进一步的信息?

谢谢!

【问题讨论】:

  • 仅靠查找和替换是无法解决的。你必须换成没有相同语法的 mysqli_* 或 PDO。
  • mysql_numrows() 甚至不是核心功能;它缺少一个下划线mysql_num_rows()
  • @Sakuto:我猜 OP 在说find and replace 时是这个意思。
  • 这些只是警告,不是错误。这些不是您的脚本不起作用的原因。不,不能通过搜索和替换来转换到 mysqli 或 PDO。
  • 如果更改不起作用,还需要什么进一步的信息?您可以先告诉我们您准备为必要的重新编码支付多少费用跨度>

标签: php mysql


【解决方案1】:

使用新的mysqli_connect 有 4 个参数,前 3 个与 mysql_connect 相同 - $host、$login、$password,第 4 个是 $db。

这省略了包含的需要

$db = mysqli_select_db($db_name, $connection);

我建议创建一个函数

function ConnectToDB(){
     return mysqli_connect($host, $login, $pass, $db);
}

然后你可以用调用这个函数来替换你所有的mysql_connects。

ConnectToDB();

【讨论】:

  • 这绝不会解决这个 OP 的全部问题,它只会将错误转移到第一次尝试查询数据库,因为所有数据库访问调用都将基于已弃用的 mysql_ api
  • a) 这不是唯一需要的更改 b) I am not a programmer, can this be solved with a find replace? 的哪一部分你不明白?
  • 我的回答完全改变了这个问题
  • 不,一直都是同一个问题,只是格式变了
  • 您可以看到编辑历史记录 (link to initial version),它不仅... 只是对代码块进行格式更改。
猜你喜欢
  • 2014-03-14
  • 2016-06-18
  • 2017-05-14
  • 1970-01-01
  • 2013-05-08
  • 2017-10-06
  • 2020-04-20
  • 2014-04-29
  • 2011-05-12
相关资源
最近更新 更多