Training, Open Source
computer languages


PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 

Search our site for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Is this a hash in an SQL insert statement?

Posted by enquirer (enquirer), 24 March 2005
in the Perl Cookbook example 14.5 page 565 I found something I just can't get a grip of. They have a line

$sql_fmt = "INSERT INTO users VALUES(  %d,  %s)";

which is used to update rows in a table, but I can't figure how you can pass HASHES like that especially as they are not refered to anywhere else in the code. If they passed items in a HASH I could understand but the whole HASH! 

Posted by admin (Graham Ellis), 24 March 2005
The trick is that it's not a hash - it's a format string, where the %d and %s are filled in further down in the example using the sprintf function; to that function, %d in a text string means "insert a number to base 10 here" and %s means "insert a character string here".  The % character is NOT special in a double quoted string, so it's not taken as a hash.

If you look a few lines down the example, you'll read
    $sql = sprintf($sql_fmt,$user->uid, $dbh->quote($user->name));
which is doing the formatting.




This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.


WELL HOUSE CONSULTANTS LTD.: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho