Name
bind_col()
Synopsis
$sth->bind_col(index, \$variable[, \%attri|type])
This funciton associates or binds a column from a statement handle to a given variable. The values are updated when the related row is retrieved using a fetch method, without extra copying of data. Here is an example:
...
my $sql_stmnt = "SELECT title, author FROM books";
my $sth = $dbh->prepare($sql_stmnt);
$sth->execute();
$sth->bind_col(1, \$title);
$sth->bind_col(2, \$author);
while($sth->fetch()) {
print "$title by $author \n";
}In this example, we’re specifying that the first (1) column be
bound to the variable $title and the second to
$author. A separate statement has to be issued for
each bind. To bind multiple columns in one statement, use
bind_columns().
To specify the column data type to use for the variable—this can potentially change the data—give the desired SQL standard type as the third argument:
...
my $sql_stmnt = "SELECT title, author FROM books";
my $sth = $dbh->prepare($sql_stmnt);
$sth->execute();
$sth->bind_col(1, \$title, { TYPE=>SQL_VARCHAR } );
$sth->bind_col(2, \$author, { TYPE=>SQL_VARCHAR } );
while($sth->fetch()) {
print "$title by $author \n";
}To get a list of SQL standard data types available on your server, run this program:
#!/usr/bin/perl -w
use DBI;
foreach (@{ $DBI::EXPORT_TAGS{sql_types} }) {
printf "%s=%d\n", $_, &{"DBI::$_"};
}Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access