Class AwlQuery

Description

The AwlQuery Class.

This class builds and executes SQL Queries and traverses the set of results returned from the query.

Example usage

  1.  $sql "SELECT * FROM mytable WHERE mytype = ?";
  2.  $qry new AwlQuery$sql$myunsanitisedtype );
  3.  if $qry->Exec("typeselect"__line____file__ )
  4.       && $qry->rows > )
  5.  {
  6.    while$row $qry->Fetch() ) {
  7.      do_something_with($row);
  8.    }
  9.  }

Located in /inc/AwlQuery.php (line 138)


	
			
Variable Summary
 resource $connection
 string $error_info
 string $location
 string $querystring
 resource $result
 int $rownum
 int $rows
 string $sth
Method Summary
 The __construct (string 0, mixed 1)
 void Begin ()
 void Bind ()
 void Commit ()
 boolean Exec ([string $location = null], [int $line = null], [string $file = null])
 mixed Fetch ([boolean $as_array = false])
 void Parameters ()
 void Prepare ()
 boolean QDo (string 0, mixed 1)
 void QueryString ()
 string quote ([mixed $str = null])
 void Rollback ()
 void rows ()
 void SetConnection (resource $new_connection)
 void _log_query (string $locn, string $tag, string $string, [int $line = 0], [string $file = ""])
Variables
array $bound_parameters (line 159)

The current array of bound parameters

  • access: protected
resource $connection (line 147)

Our database connection, normally copied from a global one

  • access: protected
string $error_info (line 189)

The Database error information, if the query fails.

  • access: protected
string $execution_time (line 196)

Stores the query execution time - used to deal with long queries.

should be read-only

  • access: protected
string $location (line 208)

Where we called this query from so we can find it in our code! Debugging may also be selectively enabled for a $location.

  • access: public
string $querystring (line 153)

The original query string

  • access: protected
double $query_time_warning = 0.3 (line 217)

How long the query should take before a warning is issued.

This is writable, but a method to set it might be a better interface. The default is 0.3 seconds.

  • access: public
resource $result (line 171)

Result of the last execution

  • access: protected
int $rownum = null (line 177)

number of current row - use accessor to get/set

  • access: protected
int $rows (line 183)

number of rows from pg_numrows - use accessor to get value

  • access: protected
string $sth (line 165)

The PDO statement handle, or null if we don't have one yet.

  • access: protected
Methods
Constructor __construct (line 227)

Constructor

  • return: AwlQuery object
The __construct (string 0, mixed 1)
  • string 0: The query string in PDO syntax with replacable '?' characters or bindable parameters.
  • mixed 1: The values to replace into the SQL string.
Begin (line 363)

Wrap the parent DB class Begin() so we can $qry->Begin() sometime before we $qry->Exec()

  • access: public
void Begin ()
Bind (line 307)

Bind some parameters

void Bind ()
Commit (line 376)

Wrap the parent DB class Commit() so we can $qry->Commit() sometime after we $qry->Exec()

  • access: public
void Commit ()
Exec (line 447)

Execute the query, logging any debugging.

Example So that you can nicely enable/disable the queries for a particular class, you could use some of PHPs magic constants in your call.

  1.  $qry->Exec(__CLASS____LINE____FILE__);

  • return: Success (true) or Failure (false)
boolean Exec ([string $location = null], [int $line = null], [string $file = null])
  • string $location: The name of the location for enabling debugging or just to help our children find the source of a problem.
  • int $line: The line number where Exec was called
  • string $file: The file where Exec was called
Fetch (line 529)

Fetch the next row from the query results

  • return: query row
mixed Fetch ([boolean $as_array = false])
  • boolean $as_array: True if thing to be returned is array
Parameters (line 347)

Return the parameters we are planning to substitute into the query string

void Parameters ()
Prepare (line 323)

Tell the database to prepare the query that we will execute

void Prepare ()
QDo (line 402)

Simple QDo() class which will re-use this query for whatever was passed in, and execute it returning the result of the Exec() call. We can't call it Do() since that's a reserved word...

  • return: Success (true) or Failure (false)
  • access: public
boolean QDo (string 0, mixed 1)
  • string 0: The query string in PDO syntax with replacable '?' characters or bindable parameters.
  • mixed 1: The values to replace into the SQL string.
QueryString (line 339)

Return the query string we are planning to execute

void QueryString ()
quote (line 295)

Quote the given string so it can be safely used within string delimiters in a query. To be avoided, in general.

  • return: NULL, TRUE, FALSE, a plain number, or the original string quoted and with ' and \ characters escaped
string quote ([mixed $str = null])
  • mixed $str: Data to be converted to a string suitable for including as a value in SQL.
Rollback (line 387)

Wrap the parent DB class Rollback() so we can $qry->Rollback() sometime after we $qry->Exec()

  • access: public
void Rollback ()
rows (line 355)

Return the count of rows retrieved/affected

void rows ()
SetConnection (line 255)

Use a different database connection for this query

void SetConnection (resource $new_connection)
  • resource $new_connection: The database connection to use.
_log_query (line 273)

Log query, optionally with file and line location of the caller.

This function should not really be used outside of AwlQuery. For a more useful generic logging interface consider calling dbg_error_log(...);

void _log_query (string $locn, string $tag, string $string, [int $line = 0], [string $file = ""])
  • string $locn: A string identifying the calling location.
  • string $tag: A tag string, e.g. identifying the type of event.
  • string $string: The information to be logged.
  • int $line: The line number where the logged event occurred.
  • string $file: The file name where the logged event occurred.

Documentation generated on Tue, 09 Mar 2010 10:08:41 +1300 by phpDocumentor 1.3.2