Fatal error: Uncaught Error: Call to undefined function mysql_connect()

300
30 мая 2022, 21:50

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Users\user\Desktop\open\OpenServer\domains\lazar.ua\index.php:11 Stack trace: #0 {main} thrown in C:\Users\user\Desktop\open\OpenServer\domains\lazar.ua\index.php on line 11

    <?php
    //Отключаем лимит ожидания и объявляем переменные
set_time_limit(0);
$content=NULL;$num_pages=NULL;
//Подключение к базе
//Подключаемся к базе данных
define ("HOST", "lazar.ua");
define ("DATABASE", "test");
define ("MYSQL_USER", "roor");
define ("MYSQL_PASS", "root");
mysql_connect(HOST, MYSQL_USER, MYSQL_PASS);mysql_query("set names utf8");mysql_select_db(DATABASE);
//Узнаём кол-во страниц
$content=file_get_contents('http://bash.im/');
preg_match('|max="(.*?)"|is',$content,$num_pages);
//Парсим каждую страницу
for ($i=1; $i <= $num_pages[1]; $i++){$i2=false;
    //Грузим страницы, вырезаем цитаты
    $content=file_get_contents('http://bash.im/index/'.$i);
    $quotes=explode('<span class="date">',$content);
    foreach($quotes as $quote){
        if($i2==false){$i2=true;continue;}
        //Номер цитаты
        preg_match('|class="id">#(.*?)</a>|is',$quote,$quote_id);
        //Текст цитаты
        preg_match('|<div class="text">(.*?)</div>|is',$quote,$quote_text);
        //Конвертация текста в UTF-8 и экранирование символов
        $quote_text=strip_tags(addslashes(htmlspecialchars(trim(iconv("windows-1251","UTF-8",$quote_text[1])))));
        //Вписываем в базу
        if($quote_text!=NULL){mysql_query("INSERT INTO `bash`(`id`,`quote_id`,`quote_text`) VALUES (NULL,'{$quote_id[1]}','{$quote_text}')");}
            }
    //От перезагрузки
    sleep(2);
    }
?>
Answer 1

Функции mysql_* (всё, что начинается с mysql_) не поддерживаются, начиная с PHP 7.

Что делать?

Есть как минимум две альтернативы:

  • PDO. современно, нормальное ООП, всё при нём. Есть свои недостатки, но у кого их нет? В любом случае, рекомендовано лучшими слониководами (теми, кто не использует ORM и прочие обёртки над PDO).
  • MySQLi. В целом тоже ничего, но PDO лучше хотя бы потому, что умеет поддерживать несколько различных СУБД и лучше работает с подготовленными запросами. Однако если вам надо быстро что-то перевести со старого mysql_*-кода, возможно, MySQLi вам понравится больше.
READ ALSO
использование mongo в php на windows

использование mongo в php на windows

Не может найти класс MongoDB\Driver\Manager

327
связанные таблицы mysql и redbeanphp?

связанные таблицы mysql и redbeanphp?

Опыта и понимания ООП маловато, но задача стоит и его надо решать) расскажу суть моей задачиНадо создать личный кабинет где будет 3 таблицы...

202
Рефакторинг кода Laravel

Рефакторинг кода Laravel

подскажите пожалуйста, код рабочий но хороший ли он с точки зрения написании правильного кода? Можно ли его как нибудь отрефакторить ?

211
Как заставить queue:work работать на хостинге Laravel

Как заставить queue:work работать на хостинге Laravel

Сразу предупреждаю, я знаю, что на эту тему есть много темОднако большинство этих тем относятся к 2014 и 2015 годам, когда еще существовал тег...

271