Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881

Много подключений за раз

21.05.2021, 19:05. Показов 671. Ответов 3

Студворк — интернет-сервис помощи студентам
Написал лёгкое API на основе класса
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
class MSQLi {
    public $connection;
 
    public function __construct($hostname, $username, $password, $database, $port = '3306') {
        $this->connection = new \mysqli($hostname, $username, $password, $database, $port);
 
        if ($this->connection->connect_error) {
            throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno);
        }
 
        $this->connection->set_charset("utf8");
        $this->connection->query("SET SQL_MODE = ''");
    }
 
    public function query($sql) {
        $query = $this->connection->query($sql);
 
        if (!$this->connection->errno) {
            if ($query instanceof \mysqli_result) {
                $data = array();
 
                while ($row = $query->fetch_assoc()) {
                    $data[] = $row;
                }
 
                $result = new \stdClass();
                $result->num_rows = $query->num_rows;
                $result->row = isset($data[0]) ? $data[0] : array();
                $result->rows = $data;
 
                $query->close();
 
                return $result;
            } else {
                return true;
            }
        } else {
            throw new \Exception('Error: ' . $this->connection->error  . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql);
        }
    }
 
    public function escape($value) {
        return $this->connection->real_escape_string($value);
    }
    
    public function countAffected() {
        return $this->connection->affected_rows;
    }
 
    public function getLastId() {
        return $this->connection->insert_id;
    }
    
    public function connected() {
        return $this->connection->ping();
    }
    
    public function __destruct() {
        $this->connection->close();
    }
    
 
}


Когда идёт обращение к API(ajax post динамическая загрузка данных) у одного человека, то всё хорошо
PHP
1
2
3
4
5
6
7
8
    require_once('mysqli.php');
 
    $connection = new MSQLi('localhost', '', '', '');
    
    if(!$connection->connected()) {
        echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
        exit;
    }
Но когда на сайте начинают сидеть более 10 человек, им поголовно прилетает мол - слишком много подключений к БД



Есть ли возможность закэшировать подключение для FileAPI.PHP ? Что бы когда больше 10 человек заходили на сайт, у них не выходило сообщений о том что много подключений
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2021, 19:05
Ответы с готовыми решениями:

Добавить данные много раз в базу данных
Поясню ситуацию. Есть страница написання с помощью switch. Есть case в котором выполняется добавление в базу данных информации для...

Парсинг много раз
include 'simple_html_dom.php'; $item = mysql_query(&quot;SELECT * FROM allitems&quot;); for ($i=1; $i&lt;100; $i++) { $array =...

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

3
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.05.2021, 06:39
Странно. Чуть больше 10 человек -- это мало. Может, у вас частые AJAX-запросы? Предыдущий не завершился (соединение с БД еще не закрыто), сразу посылается другой HTTP-запрос, вследствие которого инициируется новое подключение.
И так в каждом клиенте (браузере) сидящих на сайте людей.

Если не из-за частоты запросов -- трудно гадать. Посмотрите тогда это (Гугл переводчик сносно переведет, если что):
https://stackoverflow.com/ques... connection

Добавлено через 2 минуты
Цитата Сообщение от OpXiv Посмотреть сообщение
Есть ли возможность закэшировать подключение для FileAPI.PHP ?
https://www.php.net/manual/ru/... tconns.php
0
1298 / 992 / 230
Регистрация: 01.10.2018
Сообщений: 3,860
24.05.2021, 22:16
Как это все реализовано? Может, для каждого пользователя создаете отдельное соединение и постоянно "висите в памяти". Или запросы к API настолько долго обрабатываются, что складывается ситуация, как будто обработчик не перезапускается.
0
Заблокирован
27.05.2021, 19:32
Цитата Сообщение от estic Посмотреть сообщение
Может, для каждого пользователя создаете отдельное соединение и постоянно "висите в памяти".
Даже если бы висело в памяти - 10 человек это ни о чем. Я вот не понял про API, когда ТС пишет про посетителей на сайте. Вроде это обычный класс для работы с базой. Для кого API ?

Добавлено через 9 минут
Цитата Сообщение от OpXiv Посмотреть сообщение
Но когда на сайте начинают сидеть более 10 человек, им поголовно прилетает мол - слишком много подключений к БД
Вероятно, бесплатный хостинг с такими ограничениями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2021, 19:32
Помогаю со студенческими работами здесь

CallbackAPI вызывает скрипт много раз
Доброго времени! Есть такая проблема. Написал скрипт который при получении сообщения в ЛС сообщества: 1) Присылает мне сообщение, что...

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

Как в цикле отправлять форму много раз?
Добрый день.Как в цикле отправлять форму. Вот код &lt;?php $arr = array('admin','somebody', 'rg','sad'); for ($i=0; $i &lt;...

Очень много подключений
Собственно, вот: При каждом включение ПК создаеться очень много подключений. Очень лагает ПК из-за стольких подключений, отключение...

Соответствие портов и много подключений
Здравствуйте. Задумался над вопросом. Объекты TServerSocket и TClientSocket должны иметь одинаковые значения Порта и Адреса. Но если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru