【发布时间】: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。
-
如果更改不起作用,还需要什么进一步的信息?您可以先告诉我们您准备为必要的重新编码支付多少费用跨度>