Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
TemKa_SD

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

Recommended Posts

Здравствуйте. Интегрируют тут потихоньку пользователей форума с игровым сервером. В базе данных игрового сервера у таблицы с игроками поле 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

Share this post


Link to post
Share on other sites
Как записать уникальный идентификатор без auto_increment
У Вас uid имеет первичный ключ.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

Все я понял :)

 

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

Share this post


Link to post
Share on other sites

Все я понял :)

 

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

 

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

 

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

 

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

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...