Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
TemKa_SD

Как записать уникальный идентификатор без auto_increment

Рекомендованные сообщения

Здравствуйте. Интегрируют тут потихоньку пользователей форума с игровым сервером. В базе данных игрового сервера у таблицы с игроками поле id (в моем случае uid) нет автоинкримента, соответственно, обычными способами тут не обойдешься. Скажите, какие варианты есть?

 

				$pvpgn = new \IPS\sharedstats\Records\PvPGNConnection;

			$pvpgn->uid = {вычислить уникальный uid и записать сюда};
			$pvpgn->acct_username = $values['sharedstats_pvpgn_account_add_name'];
			$pvpgn->username = mb_strtolower($values['sharedstats_pvpgn_account_add_name']);
			$pvpgn->acct_passhash1 = \IPS\Helpers\PVPGN\Hash::get_hash(\IPS\Request::i()->$values['sharedstats_pvpgn_account_add_password']);
			$pvpgn->acct_email = '2';
			$pvpgn->acct_userid = '3';

post-60255-0-47907400-1533786572_thumb.png

Поделиться сообщением


Ссылка на сообщение
Как записать уникальный идентификатор без auto_increment
У Вас uid имеет первичный ключ.

Поделиться сообщением


Ссылка на сообщение

Как мне его передать правильно?

Поделиться сообщением


Ссылка на сообщение

Если это данные с какого сервера, то там и нужно смотреть.

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Если поле нигде не используется, то генерируйте значение.

Как вариант использовать текущее время

Поделиться сообщением


Ссылка на сообщение

Блин, вы вообще меня не поняли. Карочи сделал так:

$pvpgn->uid = \IPS\Member::loggedIn()->member_id;

 

Конфликтов не должно быть по идее, так как автоинкремента нет, да и потом можно будет сравнивать пользователей по ID.

Поделиться сообщением


Ссылка на сообщение

Все я понял :)

 

Судя по коду, это форма. И если юзер с ID 5 попытается отправить форму во второй раз, то получит ошибку, т.к. в таблице уже есть запись с uid 5.

Поделиться сообщением


Ссылка на сообщение
08/09/18 08:01 (изменено)

Все я понял :)

 

Судя по коду, это форма. И если юзер с ID 5 попытается отправить форму во второй раз, то получит ошибку, т.к. в таблице уже есть запись с uid 5.

 

Ага, только так и должно быть, запрещено одному пользователю регистрировать больше 1 аккаунта )

 

Ну так совсем криво, да?

 

					$uid = $this->db->select('*', 'pvpgn_BNET', null, '`uid` DESC')->first();
				$uid = intval($uid['uid']) + 1;

Изменено пользователем TemKa_SD

Поделиться сообщением


Ссылка на сообщение

Тогда используйте ID юзера, если собираетесь связать столбец с ним.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...