不推荐使用:mysql_connect()

Mub*_*san 91 php mysql function deprecated

我收到此警告,但该程序仍然正常运行.

MySQL代码在PHP中显示一条消息:

不推荐使用:mysql_connect():不推荐使用mysql扩展,将来会删除它:在第2行的C:\ xampp\htdocs\task\media \new\connect.inc.php中使用mysqli或PDO

我的connect.inc.php页面是

<?php
  $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?>
Run Code Online (Sandbox Code Playgroud)

这意味着什么?如何消除消息?

Tha*_*ara 133

您的问题很少有解决方案.

MySQLi的方式是这样的:

<?php
$connection = mysqli_connect('localhost', 'username', 'password', 'database');
Run Code Online (Sandbox Code Playgroud)

运行数据库查询也很简单,几乎与旧方法相同:

<?php
// Old way
mysql_query('CREATE TEMPORARY TABLE `table`', $connection);
// New way
mysqli_query($connection, 'CREATE TEMPORARY TABLE `table`');
Run Code Online (Sandbox Code Playgroud)

从mysql_*关闭所有已弃用的警告,包括它们:

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)


Reb*_*rth 30

您可以通过在mysql_connect之前添加"@"来删除警告.

@mysql_connect('localhost','root','');
Run Code Online (Sandbox Code Playgroud)

但正如警告告诉你的那样,使用mysqli或PDO,因为将来会删除mysql扩展.

  • 隐藏警告是一件好事.它使程序继续运行,并且mysql_xxxx函数现在没有问题,因为它们在当前版本中运行良好.你所说的所有被弃用的都是错误消息的一部分,所以重复这一点并不明智.每个人都可以看到它被弃用了,是的,谢谢,接下来请.将来,mysql函数调用显然会被替换.在此之前,隐藏警告是一个实用的建议,允许站点运行,同时我们默默地用后台的其他东西替换mysql_xxx调用.不要迷信. (28认同)
  • 这里有令人难以置信的有用评论..请弃用已弃用的警告并破坏您的实时代码?很好..当然隐藏警告并不理想,但仍应该保持代码正常工作.一个好的开发人员仍然会跟踪已弃用的代码,并为将来的更新安排它. (5认同)
  • 它被弃用了,没有消失.它仍然有效. (3认同)
  • 我看到你不仅自己一直在使用不好的做法,而且还告诉别人这样做 (2认同)

Ian*_*McL 9

要仅为此抑制弃用消息(并随时了解代码中的其他弃用),可以在connect前加上@:

<?php
$connect = @mysql_connect('localhost','root','');
mysql_select_db('dbname');
?> 
Run Code Online (Sandbox Code Playgroud)


Kri*_*h R 7

PHP 5.5.x中不推荐使用的功能

原来的MySQL扩展现在已经过时,并会产生E_DEPRECATED连接到数据库时的错误.相反,使用**MYSQLiPDO_MySQL扩展.**

句法:

<?php
  $connect = mysqli_connect('localhost', 'user', 'password', 'dbname');
Run Code Online (Sandbox Code Playgroud)

此外,将所有mysql_*功能替换为mysqli_*功能

代替

<?php
 $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?> 
Run Code Online (Sandbox Code Playgroud)


小智 5

显示此警告是因为出现了新的扩展名.它认为你仍然可以使用旧的但在某些情况下是不可能的.

我将向您展示如何与数据库建立连接.您只需更改变量的值即可.

我的连接文件:connection.php

<?php    
 $host='IP or Server Name (usually "localhost") ';
 $user='Database user';
 $password='Database password';
 $db='Database name';

 //PHP 5.4 o earlier (DEPRECATED)
 $con = mysql_connect($host,$user,$password) or exit("Connection Error");
 $connection = mysql_select_db($db, $con);

 //PHP 5.5 (New method)
 $connection =  mysqli_connect($host,$user,$password,$db);
?>
Run Code Online (Sandbox Code Playgroud)

执行查询时,扩展名也会更改.

查询文件:"example.php"

<?php
 //First I call for the connection
 require("connection.php");

 // ... Here code if you need do something ...

 $query = "Here the query you are going to perform";

 //QUERY PHP 5.4 o earlier (DEPRECATED)
 $result = mysql_query ($query) or exit("The query could not be performed");

 //QUERY PHP 5.5 (NEW EXTENSION)
 $result = mysqli_query ($query) or exit("The query could not be performed");    
?>
Run Code Online (Sandbox Code Playgroud)

这种方式使用MySQL Improved Extension,但您可以使用PDO(PHP数据对象).

第一种方法只能用于MySQL数据库,但PDO可以管理不同类型的数据库.

我将举一个例子,但有必要说我只使用第一个,所以如果有任何错误请纠正我.

我的PDO连接文件:"PDOconnection.php"

<?php
 $hostDb='mysql:host= "Here IP or Server Name";dbname="Database name" ';
 $user='Database user';
 $password='Database password';

 $connection = new PDO($hostDb, $user, $password);
?>
Run Code Online (Sandbox Code Playgroud)

查询文件(PDO):"example.php"

<?php
 $query = "Here the query you are going to perform";
 $result=$connection->$query;
?>
Run Code Online (Sandbox Code Playgroud)

说完你当然可以隐藏警告,但这不是一个好主意,因为如果发生错误可以帮助你将来节省时间(我们所有人都知道理论,但如果你有时工作很多时间......大脑不存在^^).