LINUX.ORG.RU

[php][mysql]Найти результат последнего INSERT

 ,


0

1

Есть, например, таблица с картинками. В ней два поля: сама картинка-блоб и id — автоинкрементный индекс.

Делаю INSERT с картинкой, при этом индекс назначается автоматом, естественно.

Как мне теперь узнать индекс этого элемента?

mysql_affected_rows и mysql_info видел, надо что-то похожее, только чтобы возвращала индекс строки, а не статистику. Или может какие-то другие приличные способы есть?

★★★★
Ответ на: комментарий от power

Может потому, что это создаёт лишнюю нагрузку на сервер?

Ramen ★★★★
()
Ответ на: комментарий от nu11

Никто и не загаживает. Просто базы бывают разные, и не надо судить по своим поделкам об их преднанзначении, ок?

power
()
Ответ на: комментарий от power

>хотя бы по 3 причины за и против хранения файлов в БД
Одной причины против в виде существенно большей нагрузки на сервер тебе недостаточно?

Ramen ★★★★
()
Ответ на: комментарий от power

Зачем спорить с очевидным? Ты что, тролль?
БД мускуль - видно из названия топика. Судя по тому, что тема размещена в разделе Web-development, это, скорее всего, веб-проект. Значит, нужна отдача статики через веб-сервер. Если хранить картинки в базе, значит для их извлечения потребуется бэкенд на пхп (тоже из названия темы), выбирающий картинку из базы. Это означает дополнительные затраты ресурсов на бэкенд, невозможность использования killer-фич типа включения aio или sendfile в нгинксе, медленные сервера статики (по сравнению с серверами, отдающими статику без бэкенда напрямую из файловой системы на диске или в памяти).
В довершение ко всему это действительно маразм. Попахивает майкрософтовщиной и индусами.

heisenberg ★★
()
Ответ на: комментарий от heisenberg

Коллега, с чего вы решили что речь идет о статике? Лично я про статику ничего не говорил.

power
()
Ответ на: комментарий от tarc

Кстати, примечание, грабли на которые можно наступить. На 32-х битной системе эта функция возвращает, максимум, 2³¹. Потом - false. Если потребуется больше - то или 64 бита, или

SELECT LAST_INSERT_ID();

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>2³¹
Ну это 2 с чем-то миллиарда... Хотя наличие такого ограничения в пхп, конечно, несколько странновато.
И почему в ³¹?

Ramen ★★★★
()
Ответ на: комментарий от Ramen

>Ну это 2 с чем-то миллиарда

В ряде случаев исчерпывается очень быстро.

Хотя наличие такого ограничения в пхп, конечно, несколько странновато.


Ничего странного, учитывая 32-х битную целочисленную арифметику по дефолту.

И почему в ³¹?


Потому что со знаком.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Потому что может быть отрицательным.
Капитан, ты сегодня в ударе. :-)
И всё же: зачем нужен отрицательный id?

Ramen ★★★★
()
Ответ на: комментарий от Ramen

>Да. Т.к. неясно, зачем было делать такую возможность.

Например, кому-нибудь захочется в INT(11) иметь до 4 миллиардов записей, а не до 2 :)

MySQL может вернуть отрицательное число. Почему PHP должен это игнорировать? Чтобы потом был лишний камень в его огород? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Например, кому-нибудь захочется в INT(11) иметь до 4 миллиардов записей, а не до 2 :)
Тогда имеет смысл использовать unsigned int, нет?

MySQL может вернуть отрицательное число. Почему PHP должен это игнорировать?

MySQL может вернуть и число больше 2³¹, но это же никого не смущает.

Ramen ★★★★
()
Ответ на: комментарий от power

>Просто базы бывают разные
вот только в треде речь про одну конкретную. И таки покажи мне БД, предназначенную заменить ФС

nu11 ★★★★★
()
Ответ на: комментарий от Ramen

> Зачем хранить картинки в базе?

ану ка притворюсь телепатом... ты быдлокодер-сайтостроитель?! как я угоадал? Это было просто.

Очень часто файлы в БД хранить очень хорошая идея. Другое дело, что учитывая специфику приложения нужно выбирать между реляционной и документо-ориентированной БД.

Но если хранить в БД ссылку на файлик, а сам файлик валяется где-то на файловой системе - это маразм.

ТС, не слушай их, будь другом :)

anonymous
()
Ответ на: комментарий от nu11

Не представляю, как ты еще не столкнулся с ограничениями, накладываемыми древовидной структурой ФС.

power
()
Ответ на: комментарий от anonymous

учитывая специфику приложения

держи симпафку!

power
()
Ответ на: комментарий от nocomer

>В PHP вроде нет unsigned?
Если честно, не в курсе, я не пишу на PHP.

Ramen ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.