coldfusion - привязать форму к базе данных - PullRequest
1 голос
/ 22 сентября 2010

У меня есть большая таблица, которая вставляет данные в базу данных. Проблема в том, что когда пользователь редактирует таблицу, я должен:

  1. выполнить запрос
  2. использовать много строк, таких как value="<cfoutput>getData.firstname#</cfoutput> в полях ввода.

Есть ли способ привязать поля ввода формы к базе данных через файл cfc или cfm?

Большое спасибо,

R

Ответы [ 5 ]

0 голосов
/ 17 августа 2017

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

Согласно документам EntityNew() синтаксис показывает, что вы можете включить данные при создании экземпляра объекта:

  artistObj = entityNew("Artists",{FirstName="Tom",LastName="Ron"});

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

  artistObj = entityNew( "Artists", FORM );
  EntitySave( artistObj );
  ORMFlush();

ПРИМЕЧАНИЕ Из вашего вопроса действительно следует, что вы можете выполнять запросы вставки или обновления.При использовании ORM вам не нужно этого делать.Но я могу ошибаться.

0 голосов
/ 27 сентября 2010

Если вы ищете простой способ не указывать все имена столбцов в запросе на вставку, cfinsert попытается сопоставить все имена форм, которые вы отправляете, с именами столбцов базы данных.

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7c78.html

0 голосов
/ 22 сентября 2010

Если вы используете CF 9, вы можете использовать функциональность ORM (Object Relation Management) (через CFC), как описано в этой онлайн-главе https://www.packtpub.com/sites/default/files/0249-chapter-4-ORM-Database-Interaction.pdf (начиная со страницы 6 pdf)

0 голосов
/ 22 сентября 2010

Посмотрите на <cfgrid>, это будет проще всего, если вы редактируете таблицу, и она может запустить 1 обновление на строку.

Для защиты от XSS вы должны использовать <input value="#xmlFormat(getData.firstname)#">, минимизировать количество тегов <cfoutput>. XmlFormat() не требуется, если вы используете <cfinput>.

0 голосов
/ 22 сентября 2010

Объекты запроса включают columnList, представляющий собой список разделенных запятыми возвращаемых столбцов.

Если безопасность и удобочитаемость не являются проблемой, вы всегда можете зацикливаться на этом. Тем не менее, это в основном исключает вашу возможность делать такие вещи, как блокировка определенных столбцов, уменьшает вашу способность выполнять любую проверку и означает, что вы либо просто помечаете поля формы именами столбцов, либо находите способ хранения ярлыков для каждого столбца.

Затем вы можете вставить / обновить / что угодно с ними.

Я не рекомендую этого, так как это будет почти невозможно обезопасить, но оно может привести вас туда, куда вы идете.

...