classes/phing/tasks/ext/pdo/PDOSQLExecTask.php

\PDOSQLExecTask

Executes a series of SQL statements on a database using PDO.

Statements can either be read in from a text file using the src attribute or from between the enclosing SQL tags.

Multiple statements can be provided, separated by semicolons (or the defined delimiter). Individual lines within the statements can be commented using either --, // or REM at the start of the line.

The autocommit attribute specifies whether auto-commit should be turned on or off whilst executing the statements. If auto-commit is turned on each statement will be executed and committed. If it is turned off the statements will all be executed as one transaction.

The onerror attribute specifies how to proceed when an error occurs during the execution of one of the statements. The possible values are: continue execution, only show the error; stop execution and commit transaction; and abort execution and transaction and fail task.

Extends from
\PDOTask
author
Hans Lellelid (Phing)
author
Jeff Martin (Ant)
author
Michael McCallum (Ant)
author
Tim Stephenson (Ant)
copyright
2001,2002 THYRELL. All rights reserved
package
phing.tasks.ext.pdo
version
$Revision: 1274 $

Constants

Constant  DELIM_ROW = 'row'
Constant  DELIM_NORMAL = 'normal'

Properties

Propertyprivate\PDO  $conn= 'null'

Database connection

Default valuenullDetails
Type
\PDO
Propertyprivatestring  $delimiter= ';'

SQL Statement delimiter (for parsing files)

Default value;Details
Type
string
Propertyprivate  $delimiterType= 'normal'

The delimiter type indicating whether the delimiter will only be recognized on a line by itself

Default valuenormalDetails
Type
Propertyprivate  $encoding= 'null'

Encoding to use when reading SQL statements from a file

Default valuenullDetails
Type
Propertyprivateint  $fetchMode= ''

Fetch mode for PDO select queries.

Details
Type
int
Propertyprivatearray  $filelists= 'array'

Files to load

FileList[]
Default valuearrayDetails
Type
array
Propertyprivatearray  $filesets= 'array'

Files to load

FileSet[]
Default valuearrayDetails
Type
array
Propertyprivatearray  $formatters= 'array'

Formatter elements.

PDOSQLExecFormatterElement[]
Default valuearrayDetails
Type
array
Propertyprivateint  $goodSql= '0'

Count of how many statements were executed successfully.

Default value0Details
Type
int
Propertyprivate  $onError= 'abort'

Action to perform if an error is found

Default valueabortDetails
Type
Propertyprivatestring  $sqlCommand= ''

SQL input command

Details
Type
string
Propertyprivate\PhingFile  $srcFile= ''

SQL input file

Details
Type
\PhingFile
Propertyprivate\PDOStatement  $statement= ''

SQL statement

Details
Type
\PDOStatement
Propertyprivateint  $totalSql= '0'

Count of total number of SQL statements.

Default value0Details
Type
int
Propertyprivate  $transactions= 'array'

SQL transactions to perform

Default valuearrayDetails
Type

Methods

methodpublic  addFilelist(  $list ) :
Adds a set of files (nested filelist attribute).
Parameters
Name Type Description
$list
methodpublic  addFileset(  $set ) :
Adds a set of files (nested fileset attribute).
Parameters
Name Type Description
$set
methodpublic  addText(  $sql ) :
Set an inline SQL command to execute.

NB: Properties are not expanded in this text.

Parameters
Name Type Description
$sql
methodprotected  closeConnection( ) :
Closes current connection
methodprotected  closeFormatters( ) :
Run cleanup and close formatters.
methodpublic  createFormatter( ) : \PDOSQLExecFormatterElement
Creates a new PDOSQLExecFormatterElement for element.
Returns
Type Description
\PDOSQLExecFormatterElement
methodpublic  createTransaction( ) :
Add a SQL transaction to execute
methodprotected  execSQL(  $sql ) :
Exec the sql statement.
Parameters
Name Type Description
$sql
Details
throws
methodprotected  getConfiguredFormatters( ) : array
Returns configured PDOResultFormatter objects (which were created from PDOSQLExecFormatterElement objects).
Returns
Type Description
array
methodprivate  getDefaultOutput( ) : \Writer
Gets a default output writer for this task.
Returns
Type Description
\Writer
methodpublic  getDelimiter( ) : string
Get the statement delimiter.
Returns
Type Description
string
methodprotected  initFormatters( ) :
Initialize the formatters.
methodprotected  isSelectSql( string $sql ) : boolean
Whether the passed-in SQL statement is a SELECT statement.

This does a pretty simple match, checking to see if statement starts with 'select' (but not 'select into').

Parameters
Name Type Description
$sql string
Returns
Type Description
boolean
methodpublic  main( ) :
Load the sql file and then execute it
Details
throws
methodprotected  processResults( ) :
Passes results from query to any formatters.
Details
throws
methodpublic  runStatements(  $reader ) :
read in lines and execute them
Parameters
Name Type Description
$reader
Details
throws
IOException
methodpublic  setDelimiter(  $delimiter ) :
Set the statement delimiter.

For example, set this to "go" and delimitertype to "ROW" for Sybase ASE or MS SQL Server.

Parameters
Name Type Description
$delimiter delimiter
methodpublic  setDelimiterType( string $delimiterType ) :
Set the Delimiter type for this sql task. The delimiter type takes two values - normal and row. Normal means that any occurence of the delimiter terminate the SQL command whereas with row, only a line containing just the delimiter is recognized as the end of the command.
Parameters
Name Type Description
$delimiterType string
methodpublic  setEncoding( \encoding $encoding ) :
Set the file encoding to use on the SQL files read in
Parameters
Name Type Description
$encoding \encoding the encoding to use on the files
methodpublic  setFetchmode( mixed $mode ) :
Sets the fetch mode to use for the PDO resultset.
Parameters
Name Type Description
$mode mixed The PDO fetchmode integer or constant name.
methodpublic  setOnerror(  $action ) :
Action to perform when statement fails: continue, stop, or abort optional; default "abort"
Parameters
Name Type Description
$action
methodpublic  setSrc(  $srcFile ) :
Set the name of the SQL file to be run.

Required unless statements are enclosed in the build file

Parameters
Name Type Description
$srcFile

\PDOSQLExecTransaction

"Inner" class that contains the definition of a new transaction element.

Transactions allow several files or blocks of statements to be executed using the same JDBC connection and commit operation in between.

package
phing.tasks.ext.pdo

Properties

Propertyprivate  $parent= ''
Details
Type
Propertyprivate  $tSqlCommand= ''
Details
Type
Propertyprivate  $tSrcFile= 'null'
Default valuenullDetails
Type

Methods

methodpublic  __construct(  $parent ) :
Parameters
Name Type Description
$parent
methodpublic  addText(  $sql ) :
Parameters
Name Type Description
$sql
methodpublic  runTransaction( ) :
Details
throws
PDOException
methodpublic  setSrc(  $src ) :
Parameters
Name Type Description
$src
Documentation was generated by DocBlox 0.13.1.