Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как записать уникальный идентификатор без 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.

Опубликовано:
  • Автор

Все я понял :)

 

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

 

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

 

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

 

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

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

Опубликовано:

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.