How do we pass the table name as a variable in run time.

If you want to specify a table name dynamically, you have to construct it into the query before you prepare the query. Interpolation works just fine for this, though you'd be advised to untaint the table name beforehand, lest someone sneak in something really nasty.

If you look around a bit, you'll ocassionally see people doing something like

$sth = $dbh->prepare("select * from ?"); $sth->execute($name);
On the surface, this appears to work (for some databases), but the effect is a coincidence of implementation. DBI/DBD does not make sure that bind parameters are in syntactically valid places in the query. That test is deffered to the database. Some databases don't support query preparation. For these, the DBD arranges to hang on to whatever query you pass to prepare(). When you execute(), the save query is massaged to expand quoted bind parameters, and is passed to the database for execution. Non valid parameter substitution appears to work, until you target a database that does support query preparation. Then, KaBOOM.


In reply to Re: Dynamically passing table names to a sql query(DBI) by dws
in thread Dynamically passing table names to a sql query(DBI) by brajan

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.