Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5.5.x中不推荐使用的MySQL扩展_Php_Mysql_Mysqli - Fatal编程技术网

PHP5.5.x中不推荐使用的MySQL扩展

PHP5.5.x中不推荐使用的MySQL扩展,php,mysql,mysqli,Php,Mysql,Mysqli,根据PHP5.5.x,以及互联网上的许多源代码,整个原始MySQL扩展都已被弃用。我有一个非常健壮的web应用程序,在我的协会中有很多学生都在使用它,但我在不太懂PHP的时候就开始使用它了,而且我从来没有想过用MySQLi或PDO\uMySQL来更改MySQL扩展 web应用程序已经完成,所有系统都在运行,可能不会使用新功能进行增强,因此我的问题是:我是否应该花一些时间更改所有mysql_*调用,并使用mysqli_*调用进行切换。如果我将所有内容都保留在不推荐使用的mysql扩展上,我的应用程

根据PHP5.5.x,以及互联网上的许多源代码,整个原始MySQL扩展都已被弃用。我有一个非常健壮的web应用程序,在我的协会中有很多学生都在使用它,但我在不太懂PHP的时候就开始使用它了,而且我从来没有想过用MySQLi或PDO\uMySQL来更改MySQL扩展


web应用程序已经完成,所有系统都在运行,可能不会使用新功能进行增强,因此我的问题是:我是否应该花一些时间更改所有mysql_*调用,并使用mysqli_*调用进行切换。如果我将所有内容都保留在不推荐使用的mysql扩展上,我的应用程序是否会在internet上变得不可访问?

是的,您应该更新代码以使用mysqli或PDO

原因不仅在于mysql在未来的PHP版本中不可访问。而且在你的安全方面

mysql_*不支持涵盖sql保护的准备语句/参数化语句。您可以使用mysql\u real\u escape\u string(),但即使在处理多字节字符时,这也不是完美的

另见: 及

是的,当您的Web主机升级到删除扩展的PHP版本时,应用程序将无法访问。请注意,这在PHP5.5中不会发生,在PHP5.5中,扩展被标记为“仅”已弃用。分机何时被删除是未知的

关于升级问题:这要看情况而定,您是否希望您的应用程序超过live mysql*呢?您的web主机是否经常更新PHP?如果他们的更新速度很慢,您可能可以运行应用程序数年

性能/安全方面,最好改为准备好的报表

我是否应该花点时间更改所有mysql_*调用并用mysqli_*调用切换它们

不,不,不。
  • 如果你想让你的应用程序更好,让你自己熟悉一些或者至少是DAL喜欢的或者
  • 如果你想让你的应用程序继续运行,就让它保持原样。您的服务器上还没有5.5,是吗?当您得到它时,您将能够关闭不推荐使用的级别通知。这不是最好的方法,但价格便宜且可用
而机械地将mysql更改为mysqli调用将没有任何好处

如果我把所有东西都放在不推荐使用的mysql扩展上,我的应用程序会在互联网上无法访问吗


我不能真正理解你的要求,但我认为你至少还有5年的路要走。

你应该问自己的问题是

"How long before I am forced to move to a version of PHP that no longer supports mysql_*?"
如果您从未升级过PHP,则根本不需要更改代码。 (请不要对我大喊大叫,伙计们)

不过,在将来的某个时候,您将不得不使用新版本的PHP

你的ISP或你的网络管理员会坚持认为你所使用的PHP版本在网络上是旧的、不安全的

所以诚实的回答是,你不必在周五之前完成,但是当管理员坚持要删除你的PHP版本时,你必须在某个时候完成。所以当你有时间的时候就去做。

如果我把所有东西都放在不推荐使用的mysql扩展上,我的应用程序会在互联网上无法访问吗

只有当运行应用程序的服务器升级到不支持旧API的PHP版本时,应用程序才会中断。如果您的服务器没有升级到PHP5.5,那么您的应用程序将无限期地继续运行。在这方面,外部互联网上的任何其他内容都不会对其产生影响;只有升级到您自己的服务器才相关

目前,PHP5.4仍然受到积极支持,因此您可以愉快地继续使用该版本,而无需担心代码突然中断

但是,在将来的某个时候,出于某种原因,您需要升级到PHP5.5或更高版本。PHP5.4将结束使用,建议迁移到5.5。或者,如果您使用的是共享托管帐户,那么您甚至可能没有任何PHP版本的选择。因此,是的,您应该期望您当前的代码不会与您当时使用的PHP版本一起工作。最终

因此,虽然目前没有紧迫的事情要做,但你应该尽快考虑。有一件事你不希望,那就是有一天事情发生了,你会发现自己被困住了

5.5刚刚发布,所以在它成为可用的最低版本之前,您可能还有几年的时间,但请接受我的建议;你不想等到最后一刻

我是否应该花点时间更改所有mysql_*调用并用mysqli_*调用切换它们

您表示您的应用程序“非常健壮”,并且“可能不会得到增强”。所以它基本上处于长期维护阶段

考虑到这些标准,我想说是的,简单地切换到
mysqli
lib是明智之举。所需的更改相当简单(听起来您已经掌握了要做的事情),并且对软件的其余部分几乎没有任何影响

如果你的代码真的很健壮并且写得很好,那么你就可以将它结构化,这样就有了某种数据库层,这就意味着你没有多少事情要做

如果它的结构不是很好,那么可能会有很多
mysql\u query()
调用分散在代码中,在这种情况下可能需要更多的工作。在这种情况下,由于您正在处理代码,您可能会考虑花些时间进行一些重构。创建一个数据库层。也许开始使用准备好的语句。我还建议切换到PDO,而不是
mysqli
。但是你的电话——考虑到你在问题中所说的,如果你想做最低数量的wo,这是可以理解的