Изображение базы данных затем обновляется = ошибка, затем обновляется изображение = успех! Зачем? - PullRequest
0 голосов
/ 08 ноября 2010

Так что я столкнулся с недоумением (вызванным программистом), я являюсь программистом.

Я создал сайт с профилем пользователя. В профиле пользователя много полей и изображений. Изображение загружается просто отлично. Сначала он конвертируется в определенную область.

...
// Я загружаю изображение в базу данных.
imageConverter-> loadImage ($ _ FILE ... бла-болх).
...

Когда пользователь решает изменить свою информацию, он также имеет возможность изменить свою фотографию. Процесс редактирования профиля является ТОЧНЫМ ЖЕ, КАК ЗАПУСК ПРОФИЛЯ. Единственное отличие состоит в том, что я проверяю поля, которые он / она обновляет по одному, и изменяю эту конкретную строку в базе данных (очевидно, это можно сделать оптимально, но сначала я хочу, чтобы она работала :))

Запутанная часть заключается в следующем. Когда я РЕДАКТИРУЮ информацию профиля, заказ идет следующим образом. я использую MYSQLI ($ this-> mysqli-> query ($ query)).

они редактируются в базе данных, ЕСЛИ ОНИ ИЗМЕНЕНЫ

  • 1 имя
  • 2 фамилия
  • 3 пароля
  • 4 различных предпочтения (флажки / переключатели).
  • 5 email
  • 6 аватар.
  • 7 обновить информацию о сеансе с запросом к базе данных для получения большей информации об обновлении.

Теперь # 7 возвращает ложь (SELECT * FROM USERSINFO)

Теперь, если я переключу порядок действий.

  • 1 имя
  • 2 фамилия
  • 3 пароля
  • 4 различных предпочтения (флажки / переключатели).
  • 5 электронная почта
  • 6 обновить информацию о сеансе с помощью запроса к базе данных для получения большей информации об обновлении.
  • 7 аватар.

Работает просто отлично.

есть ответы? Означает ли это, что если бы 1000 человек пытались использовать мою базу данных одновременно, все эти вещи сломались бы?

Код:

Вставка изображения (шаг № 6 в нерабочем примере, № 7 в рабочем примере)
$ this-> mysqli-> query ("DELETE FROM" .DB_REVIEW_IMAGE_TABLE. "WHERE email = '$ email'");
if ($ this-> mysqli-> query ("INSERT INTO" .DB_REVIEW_IMAGE_TABLE. "VALUES ('$ email', '$ content', '$ imageType')"))

Обновление информации о пользователе в информацию о сеансе. (шаг № 7 в плохом примере, № 6 в рабочем примере)
$ this-> userInfo = $ _SESSION [SESSION_USER_INFO] = $ database-> getUserInfo ($ this-> email);

which $ database-> getUserInfo ($ this-> email) == "SELECT" .DB_USERS_ALL_MOUNTAIN. "," .DB_USERS_BACK_COUNTRY. "," .DB_USERS_GROOMERS. "," .DB_USERS_PARK. "," .DB_USDERS. .S. " Мне нравится использовать константы :). И DB_USERS_SEX = мужчина или женщина (на всякий случай)

Michael

1 Ответ

0 голосов
/ 08 ноября 2010

Хорошо, ответ был прост.

Мой класс базы данных имел модульный уровень var, называемый $ mysqli.Этот $ mysqli как-то привык одновременно.

Я сделал 2 последовательных вызова.

  • updatePic
  • updateSessionInfo

Каждый использовал базу данных.Но наличие модульного уровня var $ mysqli может вызвать конфликт.Тем более, что информация о сеансе и информация об изображении находятся в двух разных базах данных.Я не должен знать много о php, но они должны быть выполнены до того, как закончится другой.ПОЭТОМУ, чтобы разбить это, каждый метод в базе данных

  • создает соединение с базой данных
  • устанавливает базу данных для использования.
  • выполняетquery
  • закрывает наборы соединений / результатов.

Теперь все работает!

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