will the removed obsoleto obsoletas mysql_query mysql_pconnect mysql_connect las instead habilitas funciones extension and php mysql function deprecated

removed - php deprecated mysql_connect(): the mysql extension is deprecated



Obsoleto: mysql_connect() (15)

Eso es porque está usando PHP 5.5 o su servidor web se habría actualizado a 5.5.0.

Las funciones mysql_* han quedado obsoletas a partir de 5.5.0

Source

Recibo esta advertencia, pero el programa aún se ejecuta correctamente.

El código MySQL me está mostrando un mensaje en PHP:

Obsoleto: mysql_connect (): la extensión mysql está en desuso y se eliminará en el futuro: use mysqli o PDO en su lugar en C: / xampp / htdocs / task / media / new / connect.inc.php en la línea 2

Mi página connect.inc.php es

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

¿Qué significa esto y cómo puedo eliminar el mensaje?


¡Agregar un @ funciona para mí!

error_reporting(E_ALL ^ E_DEPRECATED); con error_reporting(E_ALL ^ E_DEPRECATED);


Advertencia "obsoleto" en general significa que está tratando de usar una función que está desactualizada. No significa que su código no funcione, pero debería considerar refactorizar.

En su caso, las funciones mysql_ están en desuso. Si quieres saber más sobre esto, aquí ya está una buena explicación: ¿por qué no debería usar mysql_ * funciones en PHP?


Bueno, acabo de enfrentar tal mensaje hoy cuando me mudé a un nuevo hosting. de todos modos, he tratado de cambiar el "mySQL" a "mySQLi" pero no funciona, así que lo he hecho:

<?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); ?>

El truco es configurar el informe de errores :)

# Turn off all error reporting error_reporting(0);



Esta advertencia se muestra porque ha aparecido una nueva extensión. Supone que todavía puedes usar el anterior, pero en algunos casos es imposible.

Te muestro cómo hago la conexión con la base de datos. Solo necesita cambiar los valores de las variables.

Mi archivo de conexión : 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); ?>

La extensión también cambia cuando se realiza una consulta.

Archivo de consulta: "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"); ?>

De esta forma se está utilizando la Extensión mejorada de MySQL , pero puede usar PDO (Objetos de datos PHP) .

El primer método se puede usar solo con bases de datos MySQL, pero PDO puede administrar diferentes tipos de bases de datos.

Voy a poner un ejemplo, pero es necesario decir que solo uso el primero, así que por favor corrígeme si hay algún error.

Mi archivo de conexión 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); ?>

Archivo de consulta (PDO): "example.php"

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

Para terminar simplemente diga que por supuesto puede ocultar la advertencia, pero no es una buena idea porque puede ayudarlo en el futuro a ahorrar tiempo si ocurre un error (todos conocemos la teoría, pero si trabaja muchas horas a veces ... el cerebro no está allí ^^).


Hay pocas soluciones para su problema.

El camino con MySQLi sería así:

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

Para ejecutar consultas de bases de datos también es simple y casi idéntica a la antigua:

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

Desactiva todas las advertencias desaprobadas, incluyéndolas de mysql_ *:

<?php error_reporting(E_ALL ^ E_DEPRECATED);


La clase PDO reemplaza estos métodos. Ejemplo para Mysql o 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 ));

Fuente: Clase PDO


Para suprimir el mensaje de desaprobación solo para esto (y mantenerse informado de otras degradaciones en su código), puede prefijar la conexión con @:

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


Puede eliminar la advertencia agregando una ''@'' antes de mysql_connect.

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

pero como la advertencia lo indica, use mysqli o PDO ya que la extensión mysql se eliminará en el futuro.


Si has hecho tu codificación, entonces

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

es una buena opción, pero si estás empezando, definitivamente deberías usar mysqli.



poner esto en su página php.

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


Funciones desaprobadas en PHP 5.5.x

La extensión original de MySQL está ahora en desuso, y generará errores E_DEPRECATED cuando se conecte a una base de datos. En su lugar, use las MYSQLi ** MYSQLi o PDO_MySQL . **

Sintaxis:

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

Además, reemplace todas las funciones mysqli_* funciones mysqli_*

en lugar de

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


<?php $link = mysqli_connect(''localhost'',''root'',''''); if (!$link) { die(''Could not connect to MySQL: '' . mysqli_error()); } echo ''Connection OK''; mysqli_close($link); ?>

Esto resolverá su problema.