prepare
$sth = $dbh->prepare($statement) || die $dbh->errstr; $sth = $dbh->prepare($statement, \%attr) || die $dbh->errstr;
Prepares a single statement for later execution by the database engine and returns a reference to a statement handle object.
The returned statement handle can be used to get attributes of the
statement and invoke the execute
method. See
"Statement Handle Methods.”
Drivers for engines without the concept of preparing a statement will
typically just store the statement in the returned handle and process
it when $sth-
>execute
is
called. Such drivers are unlikely to give much useful information
about the statement, such as
$sth-
>{NUM_OF_FIELDS}
, until
after $sth-
>execute
has been
called. Portable applications should take this into account.
In general, DBI drivers do not parse the contents of the statement (other than simply counting any placeholders). The statement is passed directly to the database engine, sometimes known as pass-thru mode. This has advantages and disadvantages. On the plus side, you can access all the functionality of the engine being used. On the downside, you’re limited if you’re using a simple engine, and you need to take extra care if you’re writing applications intended to be portable between engines.
Portable applications should not assume that a new statement can be prepared and/or executed while still fetching results from a previous statement.
Some command-line SQL tools use statement terminators, like a semicolon, to indicate the end of a statement. Such terminators should not normally be used with the DBI.