Obsolète: mysql connect()

je reçois cet avertissement, mais le programme fonctionne toujours correctement.

le code MySQL me montre un message en PHP:

déprécié: mysql_connect (): l'extension mysql est dépréciée et sera supprimé à l'avenir: utilisez mysqli ou AOP à la place dans C:xampphtdocstaskmedianewconnect.Inc.php sur la ligne 2

Mon connect.inc.php page

<?php
  $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?>

quoi est-ce que cela signifie Et Comment puis-je éliminer le message?

80
demandé sur Eric Leschinski 2014-02-15 15:49:00

15 réponses

il y a peu de solutions pour votre problème.

La manière avec MySQLi serait comme ceci:

<?php
$connection = mysqli_connect('localhost', 'username', 'password', 'database');

pour exécuter des requêtes de base de données est aussi simple et presque identique à l'ancienne manière:

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

désactiver tous les Avertissements dépréciés, y compris ceux de mysql_*:

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
120
répondu Tharindu Kumara 2014-02-15 11:57:16

vous pouvez supprimer l'avertissement en ajoutant un '@' avant le mysql_connect.

@mysql_connect('localhost','root','');

mais comme l'avertissement vous le dit, utilisez mysqli ou PDO puisque l'extension mysql sera supprimée à l'avenir.

29
répondu Rebirth 2014-02-15 11:52:44

pour supprimer le message de dévalorisation pour cette seule raison (et rester informé des autres dévalorisations dans votre code), vous pouvez préfixer le connect avec@:

<?php
$connect = @mysql_connect('localhost','root','');
mysql_select_db('dbname');
?> 
9
répondu IanMcL 2015-02-27 15:45:51

fonctions obsolètes en PHP 5.5.x

l'extension MySQL originale est maintenant dépréciée, et générera des erreurs E_DEPRECATED lors de la connexion à une base de données. à la place, utilisez les * * MYSQLi ou PDO_MySQL extensions.**

syntaxe:

<?php
  $connect = mysqli_connect('localhost', 'user', 'password', 'dbname');

aussi, remplacer toutes les fonctions mysql_* par mysqli_* fonctions

au lieu de

<?php
 $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?> 
7
répondu Krish R 2014-02-15 12:06:29

Cet avertissement est affiché, parce qu'une nouvelle extension est apparu. Il suppouse que vous pouvez toujours utiliser l'ancien, mais dans certains cas, impossible.

je vous montre comment je fais la connexion avec la base de données. Il suffit de changer les valeurs des variables.

mon fichier de connexion: connexion.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);
?>

l'extension change aussi lors de l'exécution d'une requête.

Fichier d'interrogation: " exemple.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");    
?>

cette façon utilise extension améliorée MySQL , mais vous pouvez utiliser PDO (PHP Data Objects) .

première méthode ne peut être utilisée qu'avec des bases de données MySQL, mais PDO peut gérer différents types de bases de données.

je vais mettre un exemple mais il est nécessaire de dire que je n'utilise que le premier, alors s'il vous plaît corriger moi si il y a une erreur.

mon fichier de connexion AOP: " 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);
?>

fichier D'interrogation (AOP): " exemple.php "

<?php
 $query = "Here the query you are going to perform";
 $result=$connection->$query;
?>

pour finir, il suffit de dire que, bien sûr, vous pouvez cacher l'avertissement, mais ce n'est pas une bonne idée, car peut vous aider à l'avenir gagner du temps si une erreur se produit (nous connaissons tous la théorie, mais si vous travaillez beaucoup d'heures parfois... le cerveau n'est pas là ^ ^ ).

4
répondu jCastellote 2018-03-29 08:37:25

C'est parce que vous utilisez PHP 5.5 ou votre serveur web aurait été mis à jour à 5.5.0.

les fonctions mysql_* ont été dépréciées à partir de 5.5.0

enter image description here

Source

3
répondu Shankar Damodaran 2014-02-15 11:53:54

mysql_*, est officiellement obsolète de PHP v5.5.0 et sera supprimée dans le futur.

Utiliser mysqli_* "151920920 de la fonction" ou aop

Lire Oracle Conversion à MySQLi

1
répondu Simone Nigro 2014-02-15 11:54:03

C'est juste un avertissement qui vous dit de commencer à utiliser de nouvelles méthodes de connexion à votre base de données tels que les objets AOP

http://code.tutsplus.com/tutorials/php-database-access-are-you-doing-it-correctly--net-25338

le manuel est ici

http://www.php.net/manual/en/book.pdo.php

0
répondu user1652319 2014-02-15 11:54:23

Avertissement "obsolète" signifie en général que vous essayez d'utiliser une fonction qui est obsolète. Cela ne signifie pas que votre code ne fonctionnera pas, mais vous devriez envisager un remaniement.

dans votre cas, les fonctions mysql_ sont dépréciées. Si vous voulez en savoir plus à ce sujet, voici déjà une bonne explication : pourquoi ne devrais-je pas utiliser les fonctions mysql_* en PHP?

0
répondu MSadura 2017-05-23 10:31:19
<?php 
$link = mysqli_connect('localhost','root',''); 
if (!$link) { 
    die('Could not connect to MySQL: ' . mysqli_error()); 
} 
echo 'Connection OK'; mysqli_close($link); 
?>

cela résoudra votre problème.

0
répondu zubair1024 2014-07-05 14:20:52

Eh bien, je viens de faire face à un tel message aujourd'hui quand je suis déménagé à la nouvelle hébergement! quoi qu'il en soit, j'ai essayé de changer le "mySQL" en "mySQLi" mais cela n'a pas fonctionné, alors j'ai fait ceci:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
# Turn off all error reporting
error_reporting(0);
$connect_myconn = "Database Connection";
$hostname_myconn = "localhost";
$database_myconn = "db name";
$username_myconn = "user name";
$password_myconn = "pass";
$myconn = mysql_connect($hostname_myconn, $username_myconn, $password_myconn) or die("<h1 style=margin:0;>A MySQL error has occurred.</h1><p><b>Your Query:</b> " . $connect_myconn . "<br /> <b>Error Number:</b> (" . mysql_errno() . ")</p>" . mysql_error());
mysql_select_db($database_myconn, $myconn);
?>

le truc est de désactiver le rapport d'erreur:)

# Turn off all error reporting
error_reporting(0);
0
répondu Al3abMizo Games 2016-08-03 16:33:30
La catégorie

AOP remplace ces méthodes. Exemple pour Mysql ou MariaDB:

$BDD_SQL = new PDO('mysql:host='.BDD_SQL_SERVER.';dbname='.BDD_SQL_BASE.';charset=utf8', 
        BDD_SQL_LOGIN, BDD_SQL_PWD, 
        array(
          PDO::ATTR_EMULATE_PREPARES => false,
          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //launch exception if error
          PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC
                ));

Source: classe AOP

0
répondu Karima Rafes 2016-08-25 16:40:26

si vous avez fait votre codage alors

ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 

est une bonne option mais si vous êtes au début alors certainement vous devriez utiliser mysqli.

0
répondu ManuSharma 2016-10-01 13:44:36

mettez ceci dans votre page php.

ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 
-2
répondu Shan 2015-01-12 10:26:31

Ajouter un @ marche pour moi!

j'ai testé avec error_reporting(E_ALL ^ E_DEPRECATED);

-4
répondu Sici 2015-07-03 20:26:02