bayanruby
29.11.2012 - 18:18
создаю категорию
потом сразу же надо её привязать к сотруднику
но чтобы привязать к сотруднику нужно знать id только что созданной категории, делаю я это так mysql_insert_id()
не будет ли проблем когда будет много кто создавать категории и функция mysql_insert_id() запутается с id...?
Нет.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
bayanruby
29.11.2012 - 18:43
можете как-нибудь аргументировать? пожалуйста, очень надо))
Игорь_Vasinsky
29.11.2012 - 19:02
она не запутается.
она возвращает последний id строки, которая была добавлена в таблицу и баста.
лишь бы id был уникален или по традиции auto_increment
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
100% после функции mysql_insert_id() я гарантированно получу ид последней мной вставленной записи?
Цитата |
100% после функции mysql_insert_id() я гарантированно получу ид последней мной вставленной записи? |
, для текущего соединения 100% даже если другой процесс успеет добавить еще записи в таблицу между вашим insert и mysql_insert_id()
bayanruby
29.11.2012 - 19:49
как понять для текущего соединения ?
Invis1ble
29.11.2012 - 19:51
bayanruby
29.11.2012 - 19:55
всмысле каждый раз при обращении к базе подключаться к базе?
Цитата |
всмысле каждый раз при обращении к базе подключаться к базе? |
. т.е. если за время выполнения скрипта кто-то установил еще соединение и добавил запись в таблицу, вы все равно получите "свое" значение lastInsertId
bayanruby
29.11.2012 - 20:30
Цитата |
скрипта кто-то установил еще соединение и добавил |
1) а в моё соединение кто-нибудь попасть может?)
2) может быть что у всех одно соединение?
PandoraBox2007
30.11.2012 - 00:28
Цитата (bayanruby @ 29.11.2012 - 17:49) |
как понять для текущего соединения ? |
поток пхп подсоединяется с потоком mysql,
внутри сесии между ними будет уникальный индификатор
для больше грантированости
mysql_insert_id ( [переменная индификатора mysql сесии] )
Игорь_Vasinsky
30.11.2012 - 00:57
ты сам соединение создаешь через mysql_connect - кто тебе сказал что оно может быть одно только? вот тебе и говорят - для текущего
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
bayanruby
21.01.2013 - 15:53
Кто с Zend Framework работал? Там прокатит эта фишка?
если AUTO_INCREMENT не используете не фига не вернет)))
mysql_insert_id() возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier. Если параметр link_identifier не указан, используется последнее открытое соединение.
mysql_insert_id() возвращает 0, если последний запрос не работал с AUTO_INCREMENT полями. Если вам надо сохранить значение, убедитесь, что mysql_insert_id() вызывается сразу после запроса.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.