У меня есть таблица базы данных, в которой перечислены все заказы. Каждый уик-энд работает cron, и он генерирует счета-фактуры для каждого клиента. Код проходит через каждого клиента, получает свои последние заказы, создает PDF-файл и затем обновляет таблицу заказов для записи идентификатора счета-фактуры по каждому из своих заказов.Обновление MySQL не обновляет все записи
Окончательный запрос обновления:
заказы обновления комплект выставлен счет = «12345», где имя пользователя = «тест-имя пользователя» и выставлен счет = «»;
Итак, выставите счет-фактуру на номер 12345 для всех заказов на имя для тестирования, которые еще не были выставлены счет-фактуры.
Я столкнулся с проблемой, когда заказы добавляются в PDF, но не обновляются, чтобы отразить тот факт, что они были выставлены на счет.
Я начал запускать запрос обновления вручную и встретил странный сценарий.
Клиент может иметь 60 заказов.
Если я запустил запрос один раз, то 1 заказ обновлен. Я запускаю его снова, и один заказ обновляется, я повторяю процесс, и каждый раз обновляется лишь небольшое количество заказов - от 1 до 3. Он не обновляет 60 в одном запросе, как я ожидал. Мне нужно запустить запрос несколько раз, пока он не вернется с «0 строк, затронутых», и я могу быть уверен, что все строки были обновлены.
Я не включаю LIMIT XX в мой запрос, поэтому я так не понимаю, почему он не может обновить все заказы сразу. Повторяющийся запрос повторяется каждый раз.
Есть ли у кого-нибудь мудрые предложения ?!
Можете ли вы добавить запрос SELECT здесь, чтобы проверить, какие записи должны быть затронуты (например, 'SELECT * FROM bookings WHERE username =: username AND invoiced = ''') - и регистрировать результаты? – raina77ow
Привет - да, это странная вещь. Если я делаю SELECT для одного и того же запроса, тогда я вижу полные результаты - например. 60 строк. Если я затем запустил обновление, тогда он будет делать только 1 или 2. – Chris
Хорошо, я предполагаю, что тот же запрос выполняется нормально, когда выполняется в простой MySQL (например, через консоль) ... Можете ли вы показать сам код? – raina77ow