Задать вопрос
@Ambrel

Сократить кол-во запросов в БД?

Вообщем, у меня есть вот такой код:

function insertGameMysql() {
	global $arrGame;
	global $link;
	for ($i = 1; $i < count($arrGame)+1; $i++) { 
		$query = "('".$i."','".trim($arrGame[$i][0])."','".$arrGame[$i][1]."','".$arrGame[$i][2]."','".$arrGame[$i][3]."','".$arrGame[$i][4]."','".$arrGame[$i][5]."','".$arrGame[$i][6]."','".$arrGame[$i][7]."')";
		$stmt = $link->query('INSERT INTO `games` VALUES '.$query);
	}
	exit();
}


И этот код у меня с помощью js запускается каждые 30 секунд. Естественно данные в $arrGame каждый раз меняются - общ. кол-во данных 120! Тоисть каждые 30 секунд в базу данных отправляется 120 запросов. Как это уменьшить ? Я читал что лучше в цикле не помещать запрос в бд, но как без цикла обойтись ?
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
INSERT INTO games (one, two, three) VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
https://dev.mysql.com/doc/refman/5.7/en/insert.html
Ответ написан
Комментировать
@RidgeA
Можно одним insert обойтись
INSERT INTO `tableName` VALUES (`first`, `row`), (`second`, `row`), (`third`, `row`);


И в приведенном коде уязвимость - SQL Injection - почитай про использование подготовленных запросов.
Ответ написан
Комментировать
@mShpakov
1) multiple insert INSERT INTO a VALUES (1,23),(2,34),(4,33);
2)используйте orm (например eloquent)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы