Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2014, 14:53   #1
der90
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 73
По умолчанию получить ID

как получить при id вставляемой записи

Код:

        $sql_q = "
			INSERT INTO ads_treatment
			      ( type, item,  text,  answer_ID, userID_To,  r_u,  review_adm, `show`, ID_user_create,    adm,category )
			VALUES(:TYPE, :ITEM, :TEXT, :ANSWER_ID, :USER_ID_To, :R_U,  :REVIEW_ADM, :SHOW,  :ID_USER_CREATE,  :ADM ,:CATEGORY  )";

        $st = Core_Common::$db->prepare($sql_q);

        $st->bindParam(":TYPE", $this->type, PDO::PARAM_INT);
        $st->bindParam(":ITEM", $this->item, PDO::PARAM_STR);
        $st->bindParam(":TEXT", $this->text, PDO::PARAM_STR);
        $st->bindParam(":ANSWER_ID", $this->answer_ID, PDO::PARAM_INT);
        $st->bindParam(":USER_ID_To", $this->userID_To, PDO::PARAM_INT);
        $st->bindParam(":SHOW", $this->show, PDO::PARAM_INT);
        $st->bindParam(":ID_USER_CREATE",$this->ID_user_create, PDO::PARAM_INT);
        $st->bindParam(":R_U", $this->review_user, PDO::PARAM_INT);
        $st->bindParam(":REVIEW_ADM", $this->review_adm, PDO::PARAM_INT);
        $st->bindParam(":REVIEW_ADM", $this->review_adm, PDO::PARAM_INT);
        $st->bindParam(":ADM", $this->adm, PDO::PARAM_INT);
        $st->bindParam(":CATEGORY", $this->category, PDO::PARAM_INT);

        $st->execute();
der90 вне форума Ответить с цитированием
Старый 20.03.2014, 15:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Когда-то я выходил из этого положения так: На БД определял процедуру, которая в рамках одной транзакции делала вставку и тут же запросом получала max(id).
В сети говорят что это не айс, но у меня сработало, и даже овер 10 юзеров не попались на баги, работая с БД. Потом изучал разные проекты других проггеров, во многих поступали так же. Или почти так же.
Хотя знаю что некоторые СУБД всетки способны возвращать значение первичного ключа после вставки в рамках ХП, но сам на такие способы не попадался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.03.2014, 15:37   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Процедура +
LAST_INSERT_ID для MySql
SCOPE_IDENTITY для MS SQL
gen_id до вставки Firebird
для других СУБД см. их возможности
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить температуру ЦП Alex2009 Компоненты Delphi 5 02.02.2013 18:55
Получить описание ПК Shouldercannon Общие вопросы Delphi 8 16.11.2012 12:45
Получить доступ MyXa C# (си шарп) 4 03.10.2012 08:10
Получить последовательность Владимир_король Помощь студентам 3 29.04.2010 10:59
Получить результат! skank123 Microsoft Office Access 1 28.01.2010 22:05