我刚刚读到 http://marc.info/?l=php-internals&m=131031747409271&w=2 .
去年我在所有 php 代码中使用 mysql_query 来访问我的 mysql 数据库。
来自 PHP 领导者的该链接中的信息是否意味着我不能再使用 mysql_query?
mysql_query 将来会停止工作吗?如果是这样,这会在什么时候发生?使用 php 访问 mysql 数据库的新方法是什么?
有人介意用简单的英语简化链接的内容吗?
我很担心,谢谢。
额外: deprecated 实际上是什么意思,对于非技术人员来说这不是一个常用词......?除了 mysql_query,我应该使用什么?我要写mysqli_query吗?或 PDO_query? mysql 和 mysqli 以及 pdo 查询有什么区别?我需要使用 mysqli 或 pdo 软件来代替 mysql 数据库吗?
最佳答案
多年来,我们一直建议使用 MySQLi 或 PDO 扩展,而不是旧的 MySQL 扩展。
作为引用,请参阅 PHP 手册的此页:[**API 概述**][1] *(引用)*:
What is PHP's MySQL Extension?
This is the original extension designed to allow you to develop PHP applications that interact with a MySQL database. The mysql extension provides a procedural interface and is intended for use only with MySQL versions older than 4.1.3. This extension can be used with versions of MySQL 4.1.3 or newer, but not all of the latest MySQL server features will be available.
If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead.
您发布的链接指出 `mysql_*` 函数不会很快消失,所以不要 panic *(引用)* :
Don't panic! This is not a proposal to add errors or remove this popular extension.
Not yet anyway, because it's too popular to do that now.
但想法是“mysql_*”函数不应该再使用*(因为多年来一直是这种情况)* - 但人们仍在使用这些函数,而不是 [**PDO**][2] 或 [ **MySQLi**][3]。
帮助人们认识到有比 mysql_*
更好的解决方案的想法/建议是将这些旧函数标记为已弃用 - 在该语言的 future 版本中.
PHP 5.4 可能不会发生这种情况(已经处于 alpha 阶段);也许是 PHP 5.5 的版本——但距离发布还很远——可能至少需要两年……
现在,对于您的新项目,您可能不应该使用 `mysql_*` ;相反,您应该使用 MySQLi 或 PDO,它们更新,并且支持 MySQL 服务器的更多功能。
但是对于您的旧代码,继续使用 mysql_*
函数可能没问题——至少在一段时间内:不需要重新编写现有的应用程序。
What does deprecated actually mean, it is not a common word for non technical people...?
这意味着,当这些函数被弃用并且您尝试调用它们时,您将收到一条警告,指出您正在使用旧函数,不应再使用它们 - 并且这一警告有一天或另一天会消失。
instead of mysql_query, what do I use? Do I write mysqli_query? or PDO_query?
what is the difference between mysql and mysqli and pdo queries?
这是两个扩展:
- MySQLi 是改进的扩展,用于与 MySQL 服务器通信
- PDO 是一个扩展,允许使用相同的 PHP 类与多个 SQL Server(Oracle、SQLite、MySQL 等)进行通信。
Do I need to use mysqli or pdo software instead of mysql databases?
在服务器端,您仍将使用相同的 MySQL 服务器。
在客户端,您可以选择所需的扩展。
关于php - mysql 和 php 新闻细目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6709925/