Name
DBI::do
Synopsis
$rows_affected = $db->do($statement); $rows_affected = $db->do($statement, \%unused); $rows_affected = $db->do($statement, \%unused, @bind_values);
DBI::do
directly performs a
non-SELECT
SQL statement and returns the number of
rows affected by the statement. This is faster than a
DBI::prepare/DBI::execute
pair which requires two
function calls. The first argument is the SQL statement itself. The
second argument is unused in DBD::mSQL and DBD::mysql, but can hold a
reference to a hash of attributes for other DBD modules. The final
argument is an array of values used to replace
`placeholders,’ which are indicated with a
`?' in the statement. The values of the array are
substituted for the placeholders from left to right. As an additional
bonus, DBI::do
will automatically quote string
values before substitution.
Example
use DBI; my $db = DBI->connect('DBI:mSQL:mydata',undef,undef); my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob'"); print "$rows_affected Joe's were changed to Bob's\n"; my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle")); # After quoting and substitution, the statement: # INSERT INTO mytable (name) VALUES ('Sheldon's Cycle') # was sent to the database server.
Get MySQL and mSQL now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.