You really should do inserts based on the fields as they exist in the database, not the fields submitted by the form. Either hardcode the field names for the table, or to do it dynamically, use $sth->{NAME} to get a list of the field names for each table. If you use CGI's Var method, you can have a hash of the params and only insert if the key to the hash matches a table field name. You may run into issues of case so it's safest to turn everything to lower or upper with $sth->{NAME_lc} or $sth->{NAME_uc} and always name your form fields with that case.

I can't answer your question about how to handle multi-valued params without knowing the structure of your datbase table. Are the multiple values to be stored in multiple fields? They probably should be to keep your tables normalized, but it's hard to say without knowing what you are trying to do. If you really must have multiple values in a single field, then use join() or some other method of serializing the multiple fields into a single string.

If you aren't using DBI placeholders, I really, really recommend that you read up about them before implenting your script, you will need placeholders for CGI form values.


In reply to Re: inserting all form fields into db by jZed
in thread inserting all form fields into db by emilford

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.