ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/PApp-SQL/SQL.pm
(Generate patch)

Comparing PApp-SQL/SQL.pm (file contents):
Revision 1.23 by root, Sun Apr 7 16:23:56 2002 UTC vs.
Revision 1.30 by stefan, Wed Jan 28 19:50:38 2004 UTC

44use DBI (); 44use DBI ();
45 45
46BEGIN { 46BEGIN {
47 use base qw(Exporter DynaLoader); 47 use base qw(Exporter DynaLoader);
48 48
49 $VERSION = 0.13; 49 $VERSION = 0.143;
50 @EXPORT = qw( 50 @EXPORT = qw(
51 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec 51 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec
52 sql_uexec sql_ufetch sql_ufetchall sql_uexists 52 sql_uexec sql_ufetch sql_ufetchall sql_uexists
53 ); 53 );
54 @EXPORT_OK = qw( 54 @EXPORT_OK = qw(
76done by this module. 76done by this module.
77 77
78=item $PApp::SQL::DBH 78=item $PApp::SQL::DBH
79 79
80The default database handle used by this module if no C<$DBH> was 80The default database handle used by this module if no C<$DBH> was
81specified as argument and no C<$DBH> is found in the current package. See 81specified as argument. See C<sql_exec> for a discussion.
82C<sql_exec> for a discussion.
83 82
84=item $PApp::SQL::Database 83=item $PApp::SQL::Database
85 84
86The current default C<PApp::SQL::Database>-object. Future versions might 85The current default C<PApp::SQL::Database>-object. Future versions might
87automatically fall back on this database and create database handles from 86automatically fall back on this database and create database handles from
167with the same dbh and sql-statement twice (e.g. in a subroutine you 166with the same dbh and sql-statement twice (e.g. in a subroutine you
168called), the statement handle for the first call mustn't not be in use 167called), the statement handle for the first call mustn't not be in use
169anymore, as the subsequent call will re-use the handle. 168anymore, as the subsequent call will re-use the handle.
170 169
171The database handle (the first argument) is optional. If it is missing, 170The database handle (the first argument) is optional. If it is missing,
172C<sql_exec> first tries to use the variable C<$DBH> in the current (= 171it tries to use database handle in C<$PApp::SQL::DBH>, which you can set
173calling) package and, if that fails, it tries to use database handle in 172before calling these functions. NOTICE: future and former versions of
174C<$PApp::SQL::DBH>, which you can set before calling these functions. 173PApp::SQL might also look up the global variable C<$DBH> in the callers
174package.
175
176=begin comment
177
178If it is missing, C<sql_exec> first tries to use the variable C<$DBH>
179in the current (= calling) package and, if that fails, it tries to use
180database handle in C<$PApp::SQL::DBH>, which you can set before calling
181these functions.
182
183=end comment
175 184
176The actual return value from the C<$sth->execute> call is stored in the 185The actual return value from the C<$sth->execute> call is stored in the
177package-global (and exported) variable C<$sql_exec>. 186package-global (and exported) variable C<$sql_exec>.
178 187
179If any error occurs C<sql_exec> will throw an exception. 188If any error occurs C<sql_exec> will throw an exception.
223... and it's still quite fast unless you fetch large amounts of data. 232... and it's still quite fast unless you fetch large amounts of data.
224 233
225C<sql_ufetch> is similar to C<sql_fetch> but upgrades all input values to 234C<sql_ufetch> is similar to C<sql_fetch> but upgrades all input values to
226utf8 and forces all result values to utf8 (this does I<not> include result 235utf8 and forces all result values to utf8 (this does I<not> include result
227parameters, only return values. Using bind variables in cinjunction with 236parameters, only return values. Using bind variables in cinjunction with
228sql_u* functions results in undefined behaviour). 237sql_u* functions results in undefined behaviour - we use utf8_on on
238bind-variables and it seems to work on DBD::mysql which just means
239that that DBD-driver is broken).
229 240
230=item sql_fetchall <see sql_exec> 241=item sql_fetchall <see sql_exec>
231 242
232=item sql_ufetchall <see sql_uexec> 243=item sql_ufetchall <see sql_uexec>
233 244
309 320
310=item [old-size] = cachesize [new-size] 321=item [old-size] = cachesize [new-size]
311 322
312Returns (and possibly changes) the LRU cache size used by C<sql_exec>. The 323Returns (and possibly changes) the LRU cache size used by C<sql_exec>. The
313default is somewhere around 50 (= the 50 last recently used statements 324default is somewhere around 50 (= the 50 last recently used statements
314will be cached). It shouldn't be too large, since a simple linear listed 325will be cached). It shouldn't be too large, since a simple linear list
315is used for the cache at the moment (which, for small (<100) cache sizes 326is used for the cache at the moment (which, for small (<100) cache sizes
316is actually quite fast). 327is actually quite fast).
317 328
318The function always returns the cache size in effect I<before> the call, 329The function always returns the cache size in effect I<before> the call,
319so, to nuke the cache (for example, when a database connection has died 330so, to nuke the cache (for example, when a database connection has died
407 418
408Return the login name. 419Return the login name.
409 420
410=item $db->password 421=item $db->password
411 422
412Return the password (emphasizing the fact that the apssword is stored plaintext ;) 423Return the password (emphasizing the fact that the password is stored plaintext ;)
413 424
414=cut 425=cut
415 426
416sub dsn($) { 427sub dsn($) {
417 my $self = shift; 428 my $self = shift;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines