Fork me on GitHub
Suzf  Blog

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future

昨天刚把 php 的错误日志打开,今天看自己以前写的 监控网站访问量的 demo 就一片空白了 一片空白了 一片空白了。
手动执行了下 数据采集的 data_access.php 发现有一个警告信息输出:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
这个警告把原本的数据结构给打乱了,所以会出现 demo 的空白。
从提示很明显可以看出  mysql 扩展模块将在将来弃用,可以使用 mysqli 和 PDO 来代替。

Case A:
将 mysql 替换为 mysqli

-$conn = mysql_connect("db-hostname","dnuser","password","dbname");
+$conn = mysqli_connect("db-hostname","dbuer","password","dbname");
 
-if (!$conn) {
-  die('Could not connect: ' . mysql_error());
+/* check connection */
+if (mysqli_connect_errno()) {
+    printf("Connect failed: %s\n", mysqli_connect_error());
+    exit();
 }

官方文档  http://www.php.net/manual/zh/mysqli.query.php

Case B:
将错误日志关闭
display_errors = On
改为
display_errors = Off

Case C:
在php程序代码里面设置报警级别
error_reporting(E_ALL ^ E_DEPRECATED);

这样 Deprecated 这个问题就解决了。 不过还是推荐 使用 mysqli 或是 PDO 替代老旧的 mysql. 毕竟是趋势嘛。