Устаревший: mysql_connect ()

Я получаю это предупреждение, но программа все еще работает правильно.

Код MySQL показывает мне сообщение в PHP:

Устаревшее: mysql_connect (): расширение mysql устарело и будет удалено в будущем: вместо этого используйте mysqli или PDO в C: \ xampp \ htdocs \ task \ media \ new \ connect.inc.php в строке 2

Моя страница connect.inc.php

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

Что это значит и как я могу удалить сообщение?

Есть несколько решений для вашей проблемы.

Путь с MySQLi будет таким:

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

Запуск запросов к базе данных также прост и почти идентичен старому способу:

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

Выключите все устаревшие предупреждения, включая их из mysql_ *:

 <?php error_reporting(E_ALL ^ E_DEPRECATED); 

Вы можете удалить предупреждение, добавив '@' перед mysql_connect.

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

но, как предупреждает вам, используйте mysqli или PDO, поскольку расширение mysql будет удалено в будущем.

Чтобы подавить сообщение об устаревании только для этого (и оставайтесь в курсе других недочетов в вашем коде), вы можете префикс подключения с помощью @:

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

Устаревшие функции в PHP 5.5.x

Исходное расширение MySQL теперь устарело и будет генерировать ошибки E_DEPRECATED при подключении к базе данных. Вместо этого используйте расширения ** MYSQLi или PDO_MySQL . **

Синтаксис:

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

Кроме того, замените все функции mysqli_* функции mysqli_*

вместо

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

Это связано с тем, что вы используете PHP 5.5 или ваш веб-сервер был обновлен до 5.5.0.

Функции mysql_* устарели от 5.5.0

введите описание изображения здесь

Source

Это предупреждение отображается, поскольку появилось новое расширение. Он утверждает, что вы все еще можете использовать старый, но в некоторых случаях это невозможно.

Я покажу вам, как я делаю соединение с базой данных. Вам нужно просто изменить значения переменных.

Мой файл подключения : 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); ?> 

Расширение также изменяется при выполнении запроса.

Файл запроса: "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"); ?> 

Этот способ использует MySQL Improved Extension , но вы можете использовать PDO (объекты данных PHP) .

Метод Firt может использоваться только с базами данных 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); ?> 

Файл запроса (PDO): «example.php»

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

Чтобы закончить, просто скажите, что, конечно, вы можете скрыть предупреждение, но это не очень хорошая идея, потому что может помочь вам в будущем сэкономить время, если произойдет ошибка (все мы знаем теорию, но иногда вы работаете много часов … мозг там нет).

mysql_ *, официально устарел с PHP v5.5.0 и будет удален в будущем.

Использовать функцию mysqli_ * или pdo

Чтение конвертации Oracle в MySQLi

Класс PDO заменяет эти методы. Пример для Mysql или 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 )); 

Источник: класс PDO

Если вы сделали свое кодирование, тогда

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

это хороший вариант, но если вы в начале, то определенно вы должны использовать mysqli.

Это просто предупреждение, которое говорит вам начать использовать новые методы подключения к вашему db, такие как объекты pdo

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

Руководство находится здесь

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

Предупреждение «устарело» в общем означает, что вы пытаетесь использовать устаревшую функцию. Это не означает, что ваш код не будет работать, но вы должны подумать о рефакторинге.

В вашем случае functons mysql_ устарели. Если вы хотите узнать больше об этом, здесь есть хорошее объяснение: почему я не должен использовать функции mysql_ * в PHP?

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

Это решит вашу проблему.

Ну, я просто столкнулся с таким сообщением сегодня, когда перешел на новый хостинг! в любом случае я попытался изменить «mySQL» на «mySQLi», но не работал, поэтому я сделал это:

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

Хитрость заключается в том, чтобы отключить отчет об ошибках 🙂

 # Turn off all error reporting error_reporting(0); 

поместите это на свою php-страницу.

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

Добавление @ работает для меня!

Я тестировал с error_reporting(E_ALL ^ E_DEPRECATED);