Is it very critical and how can I fix it? Thank.

This extension is deprecated since PHP 5.5.0 and will be removed in the future. Use MySQLi or PDO_MySQL instead. See also the MySQL instruction: API selection and the corresponding FAQ for more details. Alternatives for this feature:

<?php // Конфигурационный файл /* Ключ защиты */ if(!defined('BEZ_KEY')) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents('./404.html')); } define('BEZ_DBSERVER','localhost'); // Адрес базы данных define('BEZ_DBUSER','root'); // Логин для доступа к базе данных define('BEZ_DBPASSWORD',''); // Пароль для доступа к базе данных define('BEZ_DATABASE','c1hotel'); // Имя базы данных define('BEZ_DBPREFIX','bez_'); // Префикс таблиц define('BEZ_ERROR_CONNECT','Не получилось соединится с базой данных'); // На случай ошибки define('BEZ_NO_DB_SELECT','Данная база данных отсутствует на сервере'); // На случай ошибки define('BEZ_HOST','http://'. $_SERVER['HTTP_HOST'] .'/php'); // Адрес хоста сайта define('BEZ_MAIL_AUTOR','Регистрация на http://bezramok-tlt.ru <no-reply@bezramok-tlt.ru>'); // Адрес почты для отправки кода активации ?> 

and

 <?php // Подключение к базе данных //Ключ защиты if(!defined('BEZ_KEY')) { header("HTTP/1.1 404 Not Found"); exit(file_get_contents('./../404.html')); } //Соединение с БД MySQL $db_connect = mysql_connect( BEZ_DBSERVER, BEZ_DBUSER, BEZ_DBPASSWORD ) or die(BEZ_ERROR_CONNECT); define('BEZ_CONNECT', $db_connect); mysql_select_db( BEZ_DATABASE, BEZ_CONNECT )or die(BEZ_NO_DB_SELECT); //Устанавливаем кодировку UTF8 mysql_query ("SET NAMES utf8"); mysql_query ("set character_set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); ?> 
  • one
    > Is it critical? After a couple of server updates, you can say goodbye to the whole site. > and how can I fix it? Switch to PDO or mysqli. I will immediately advise you not to stop at this and connect some Yii to the project, which will be taken over by most hemorrhoids. - etki
  • I do not know php. just sorting out the scripts I think Yii won't pull for now - Yupi

1 answer 1

The mysql extension is deprecated and excluded from PHP 7, the version that will soon become the main version of PHP (released at the end of 2015). At present, it is better to use the PDO extension — the most modern PHP extension for working with databases. The following are typical operations using this extension.

Establishing a database connection

 <?php try { $pdo = new PDO( 'mysql:host=localhost;dbname=test', 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); } catch (PDOException $e) { echo "Невозможно установить соединение с базой данных"; } 

Displaying table contents

 <?php require_once("connect.php"); $query = "SELECT * FROM catalogs"; $cat = $pdo->query($query); try { while($catalog = $cat->fetch()) echo $catalog['name']."<br />"; } catch (PDOException $e) { echo "Ошибка выполнения запроса: " . $e->getMessage(); } 

Use prepared queries

 <?php require_once("connect.php"); try { $query = "SELECT * FROM catalogs WHERE catalog_id = :catalog_id"; $cat = $pdo->prepare($query); $cat->execute(['catalog_id' => 1]); echo $cat->fetch()['name']; } catch (PDOException $e) { echo "Ошибка выполнения запроса: " . $e->getMessage(); } 

Adding data to a table

 <?php require_once("connect.php"); try { if (empty($_POST['name'])) exit('Не заполнено поле "Название"'); if (empty($_POST['content'])) exit('Не заполнено поле "Содержимое"'); // Добавляем новостное сообщение в таблицу news $query = "INSERT INTO news VALUES (NULL, :name, NOW())"; $news = $pdo->prepare($query); $news->execute(['name' => $_POST['name']]); // Получаем только что сгенерированный идентификатор news_id $news_id = $pdo->lastInsertId(); $query = "INSERT INTO news_contents VALUES (NULL, :content, :news_id)"; $news = $pdo->prepare($query); $news->execute(['content' => $_POST['content'], 'news_id' => $news_id]); } catch (PDOException $e) { echo "Ошибка выполнения запроса: " . $e->getMessage(); }