LINUX.ORG.RU

Поругайте код

 


0

2

Суть - маленькая никому не нужная типа гостевая книжка для тыканья на локалхосте. Написано на основе кода из книги, так что интересует вопрос - что там можно подправить во имя луны? Также вопрос по post.php - если при отправке формы оставить поля пустыми - то в базу будут внесены пустые строки. Как исправить? Проверка !isset($_POST) по полям user и message не срабатывает.

Архив

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

Да я вообще не пишу на php, просто объяснил чем могут руководствоваться люди, которые убирают ?>. Мусор после ?> - он отправился и отправились заголовки, куки уже не выставишь.

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

Отмазки это когда нужно сделать более или менее сложный запрос и эти ваши ОРМ берут на клыка моментально?
А в 200 строчной гостевухе это вообще никак не вперлось.

ritsufag ★★★★★
()
Последнее исправление: ritsufag (всего исправлений: 1)
Ответ на: комментарий от ritsufag

более или менее сложный запрос и эти ваши

4.2 что это за запрос такой? Даже если было бы так, большинство запросов - не такие и в некоторых случаях можно дернуть raw sql и всё равно иметь плюшки orm - данные возвращенные в виде объектов.

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

Даже для простейшего concat придется писать raw запрос.

плюшки orm - данные возвращенные в виде объектов

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

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

В какой-нить алхимии не придется. Там можно практически любой запрос сконструировать. Наверняка и под php что-то такое должно быть.

Потом ORM это возможность декларативно описать структуру БД и генерировать таблицы, миграции.

http://i.imgur.com/1mjCY0O.png

И даже с более примитивными orm: https://docs.djangoproject.com/en/1.9/ref/models/database-functions/#concat

pawnhearts ★★★★★
()
Последнее исправление: pawnhearts (всего исправлений: 1)
Ответ на: комментарий от pawnhearts

А array_to_json/array_agg там есть? Все равно учесть все особенности каждой из БД не получится.

Потом ORM это возможность декларативно описать структуру БД и генерировать таблицы, миграции.

Тут тоже встает вопрос о том какие таблицы она тебе сгенерирует без дополнительной информации, аннотаций в модели. И выйдет у тебя при генерации не меньший объем кода, если бы ты описывал структуру и миграции raw sql.

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

Привет!

В итоге выходит что кроме унылой крудни ОРМ нигде и не нужны.

Так ведь 90% веба и есть унылая крудня. А кого в этой крудне вообще волнует, какой оверхед получается при использовании ОРМ? В большинстве случаев всем наплевать, потому что при 3.5 запросах в год всё будет работать более менее нормально.

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

Есть http://stackoverflow.com/questions/23261944/sqlalchemy-postgresql-and-array-a...

Вообще можно писать func.blabla(Table.column) и это преобразуется в blabla(column) в sql.

Поддержка специфических типов данных и особенностей БД реализуется в специальных модулях:

http://docs.sqlalchemy.org/en/latest/dialects/postgresql.html#array-types http://docs.sqlalchemy.org/en/latest/dialects/oracle.html и т.п.

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

Привет.
Человек пишет для себя, а не для дяди, а вы ему ОРМ и в добавок ещё какой жирнофреймворк сунете.
Тем более новичку.

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

Я ему ничего не сую. Тут вроде как разговор про ОРМ вообще шёл.

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

Это сродни обучению обезьяны - сможет повторить, но не знает зачем ей это все.

ritsufag ★★★★★
()

эй, код, ты чё себе возомнил? ты ваще оборзел? ты ваще с какого хостинга? да ты знаешь, что бывает с такими умниками?

buratino ★★★★★
()

1) Почитай про include/require и не делай коннект к БД в каждом файле

2) mysql_escape_string вроде как теперь depricated, используй mysql_real_escape_string

3) Используй mysqli вместо mysql

4) Не используй числовой массив для оперирования полученной из БД записью, будешь добавлять в запрос поля и будешь потом долго ловить глюк.

5) Неплохо бы всю работу с БД вынести в отдельную либу, а лучше использовать PDO

Да дохрена чего ещё. Такое ощущение, что ты учился писать код по докам начала 2000-х.

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

Хм, попытался добавить сообщение с таким ником - облом-с, не дропает. БД тоже указывал. Что я могу делать не так? :)

Valkeru ★★★★
() автор топика

PS. вообще если ты реально с нуля начинаешь учить PHP обязательно параллельно начинай учить JS и jQuery.

Ну а если хочешь быть очень востребованным учи ещё и CSS.

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

Если нужны другие бд или разрабу удобнее с пдо. Мне например он не нужен

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