Вставка нескольких сотен записей в базу данных MySQL, используя MySQL и PHP - PullRequest
1 голос
/ 24 мая 2011

Я создаю приложение Flex 4 и использую ZendAMF для взаимодействия с базой данных MySQL.Я получил Flex для генерации большей части кода сервисов для меня (который использует mysqli) и грубо отредактировал часть кода (я очень новичок, когда дело доходит до PHP).На данный момент все работает нормально.

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

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

Я думаю, что более эффективный способ - это упаковкавсе эти записи в массив, отправьте их на сервер только один раз, а затем попросите службу PHP выполнить несколько вставок для каждого элемента в массиве.Проблема в том, что Я не уверен, что делать с кодированием в PHP с помощью операторов mysqli .

Любая помощь или совет будут с благодарностью - спасибо!

Ответы [ 2 ]

1 голос
/ 24 мая 2011

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

, и если они не сохранены, вы должны проверить предупреждения из mysql или ошибки из php, данные не исчезнут

попробуйте

error_reporting(-1);

непосредственно перед вставкой и

mysqli::get_warnings()

aferwards

1 голос
/ 24 мая 2011

Читать на НАГРУЗКА ДАННЫХ ЛОКАЛЬНЫЙ ИНФИЛЬ . Это кажется это просто то, что вам нужно для вставки нескольких записей: он вставляет множество записей из файла (но не массива, к сожалению) в вашу таблицу за одну операцию.

Кроме того, намного, гораздо быстрее выполнять ОБНОВЛЕНИЯ с несколькими записями с помощью ЛОКАЛЬНОГО ИНФИЛЯ НАГРУЗКИ ДАННЫХ, чем с ОБНОВЛЕНИЯМИ на одну строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...