нет членства php вручную нет - PullRequest
0 голосов
/ 18 апреля 2011

У меня есть сотни людей, которые присоединяются к моему веб-сайту и создают для них идентификатор участника. я только что создал новый столбец в базе данных с именем user_no.

  • Что такое запрос MySQL для увеличения номера участника?
  • можно ли начать с AE, а затем с цифр: AE0001, AE0002, .... и начинается с 4 числа, а не AE1, AE2 ..

MySQL запрос:

UPDATE user SET user_no=..??

и на стороне PHP, как мне увеличить его? если есть новый участник присоединиться.

$db->query("INSERT INTO user (user_no) VALUES(AE'$user_no')");

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Почему бы не использовать поле автоинкремента и добавить к нему AE? Автоинкремент будет выполняться MySQL, поэтому вам не нужно беспокоиться об этом в PHP: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

И для отображения вашего пользовательского ключа в формате AE0001 вы можете сделать

$id = 'AE' . str_pad($autoincrementid, 5, "0", STR_PAD_LEFT);

http://php.net/manual/en/function.str-pad.php

2 голосов
/ 18 апреля 2011

Я согласен со всеми, кто говорит, что вы должны просто использовать функцию автоинкремента MySQL.Вот для чего он нужен.

Можно написать свою собственную, возможно, используя функцию MySQL MAX(), чтобы найти наибольшее значение поля, находящегося в данный момент в таблице.Однако, если вы не используете какой-либо очень надежный транзакционный код, всегда существует опасность, что этот метод приведет к созданию дублирующихся записей, когда два пользователя создают учетные записи в одно и то же время.

Количество кода, необходимое дляВо-вторых, это не так уж мало, и если вы недостаточно опытны, чтобы не видеть преимуществ использования автоматического увеличения, вы вряд ли поймете это правильно.

Весь смысл автоматического увеличения состоит в том, чтобы спасти васот необходимости каждый раз реализовывать весь этот код.

Кроме того, из соображений производительности настоятельно рекомендуется использовать целочисленное значение для вашего первичного ключа.Конечно, вы можете отобразить его как "AE" . $id, но вы должны сохранить его как целое число в базе данных.

...