#!/usr/bin/perl -w # # bind.pl # # This shows how a placeholder may be used to implement a simple lookup. use DBI; use strict; # Set trace level if '-# trace_level' option is given DBI->trace( shift ) if 1 < @ARGV && $ARGV[0] =~ /^-#/ && shift; die "syntax: $0 [-# trace] base user pass" if 3 > @ARGV; my ( $inst, $user, $pass ) = @ARGV; # Connect to database my $dbh = DBI->connect( "dbi:Oracle:$inst", $user, $pass, { AutoCommit => 0, RaiseError => 1, PrintError => 0 } ) or die $DBI::errstr; # Prepare the SELECT statement using a placeholder my $sth = $dbh->prepare( 'SELECT created FROM all_users WHERE username = ?' ); my ( $created ); $| = 1; print "Enter an empty line to finish\n"; print "Userid? "; while ( ) { chomp; last if ! $_; $sth->execute( uc( $_ ) ); # Note that the variable is in parenthesis to give an array context if ( ( $created ) = $sth->fetchrow_array ) { print "$created\n"; } else { print "unknown\n"; } print "Userid? "; } $sth->finish; $dbh->disconnect;