不推荐使用的函数mysql_db_query错误

Reh*_*hmy 0 php mysql deprecated

最近我的托管更新其PHP版本后,我的网站有错误,这里是错误消息

Deprecated: Function mysql_db_query() is deprecated in /my_path/file.php on line 13 
Deprecated: Function mysql_db_query() is deprecated in /my_path/file.php on line 14
Run Code Online (Sandbox Code Playgroud)

这是代码 file.php

require_once("db.php"); // connect
$timeoutseconds = 100;
$timestamp=time();
$timeout=$timestamp-$timeoutseconds;


mysql_db_query($db, "INSERT INTO online VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')") or die("0 Users online"); // this is line 13 that shows error

mysql_db_query($db, "DELETE FROM online WHERE timestamp<$timeout") or die("0 Users online"); // this is line 14 that shows error
Run Code Online (Sandbox Code Playgroud)

有没有解释这个错误,如何解决它?〜谢谢

注意:我知道mysqli并且pdo不能转移到任何,因为我的网站主要依赖mysql并且需要几个月才能做出重大改变,所以请你坚持mysql.

Spu*_*ley 5

是的,这些mysql函数已在PHP 5.5中弃用.

你不能"修复"这个 - 事情就是这样.

你的选择是:

  1. 降级回到PHP 5.4.
    鉴于您的webhost进行了升级,这听起来不是一个选项.

  2. 做这个工作吧.
    老实说,从mysql_功能切换到功能并不是什么大不了的事mysqli_.API非常相似; 主要区别在于i函数需要传递连接变量.但这不是一个不可逾越的问题.转换到mysqli实际上非常简单,如果你把它放在心上.它肯定不会需要几个月(除非你的代码真的是一个灾区,任何小的改变需要几个月).

  3. 忽略警告.
    他们只是警告; 你的程序将继续运行,所以只需设置PHP的错误处理来忽略弃用警告,它们就会消失.但是,不要以为这可以让你摆脱困境 - 当你的webhost下次升级并且功能已经从语言中完全删除时,它将更难修复,而且更加紧急.说真的,现在就做好工作:你以后会为自己节省一大堆痛苦.