php - mysql 和 php 新闻细目

标签 php mysql

我刚刚读到 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 数据库吗?

最佳答案

多年来,我们一直建议使用 MySQLiPDO 扩展,而不是旧的 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?

阅读 MySQLi 的文档和 PDO ;-)


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/

相关文章:

MySQL - 添加 varchar 作为外键

php - Informix ODBC 驱动程序...连接字符串属性无效?

php - 如果 key 不存在则发送 null

java - mySQL中触发器和手动插入的ram进程有什么不同

php - 根据列的总和返回行

c# - 数据库中的跟踪错误

mysql - sudo 用于使用 mysql 连接匿名用户的脚本

php - 如何在mongodb数据库中存储特殊字符?

php include 文件也包括这个文件的样式

php - 如果多个文件中的所有文件都属于同一 namespace ,则需要/包含它们吗?