tasks/ext/pdo/PDOSQLExecTask.php

Show: inherited
Table of Contents

\PDOSQLExecTask

Package: phing\tasks\ext\pdo

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.

Parent(s)
\PDOTask < \Task < \ProjectComponent
Author
Hans Lellelid (Phing)  
Author
Jeff Martin (Ant)  
Author
Michael McCallum (Ant)  
Author
Tim Stephenson (Ant)  
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 value"normal"Details
Type
n/a
Propertyprivate  $encoding= 'null'

Encoding to use when reading SQL statements from a file

Default valuenullDetails
Type
n/a
Propertyprivateint  $fetchMode= ''

Fetch mode for PDO select queries.

Details
Type
int
Propertyprivatearray  $filelists= 'array()'

Files to load

FileList[]
Default valuearray()Details
Type
array
Propertyprivatearray  $filesets= 'array()'

Files to load

FileSet[]
Default valuearray()Details
Type
array
Propertyprivatearray  $formatters= 'array()'

Formatter elements.

PDOSQLExecFormatterElement[]
Default valuearray()Details
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 value"abort"Details
Type
n/a
Propertyprivatestring  $sqlCommand= '""'

SQL input command

Default value""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 valuearray()Details
Type
n/a

Methods

methodpublicaddFilelist(  $list ) : void

Adds a set of files (nested filelist attribute).

Parameters
Name Type Description
$list
methodpublicaddFileset(  $set ) : void

Adds a set of files (nested fileset attribute).

Parameters
Name Type Description
$set
methodpublicaddText(  $sql ) : void

Set an inline SQL command to execute.

NB: Properties are not expanded in this text.

Parameters
Name Type Description
$sql
methodprotectedcloseConnection( ) : void

Closes current connection

methodprotectedcloseFormatters( ) : void

Run cleanup and close formatters.

methodpubliccreateFormatter( ) : \PDOSQLExecFormatterElement

Creates a new PDOSQLExecFormatterElement for element.

Returns
Type Description
\PDOSQLExecFormatterElement
methodpubliccreateTransaction( ) : void

Add a SQL transaction to execute

methodprotectedexecSQL(  $sql ) : void

Exec the sql statement.

Parameters
Name Type Description
$sql
Throws
Exception Description
\PDOException
methodprotectedgetConfiguredFormatters( ) : array

Returns configured PDOResultFormatter objects (which were created from PDOSQLExecFormatterElement objects).

Returns
Type Description
array PDOResultFormatter[]
methodprotectedgetConnection( ) : void

methodprivategetDefaultOutput( ) : \Writer

Gets a default output writer for this task.

Returns
Type Description
\Writer
methodpublicgetDelimiter( ) : string

Get the statement delimiter.

Returns
Type Description
string
methodpublicgetDescription( ) : void

methodprotectedgetLoaderMap( ) : void

methodpublicgetLocation( ) : void

methodpublicgetOwningTarget( ) : void

methodpublicgetPassword( ) : void

methodpublicgetProject( ) : void

methodprotectedgetRegisterSlot( ) : void

methodpublicgetRuntimeConfigurableWrapper( ) : void

methodpublicgetTaskName( ) : void

methodpublicgetTaskType( ) : void

methodpublicgetUrl( ) : void

methodpublicgetUserId( ) : void

methodpublicinit( ) : void

methodprotectedinitFormatters( ) : void

Initialize the formatters.

methodpublicisAutocommit( ) : void

methodpublicisCaching( ) : void

methodprotectedisSelectSql( 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 Whether specified SQL looks like a SELECT query.
methodpubliclog( ) : void

methodpublicmain( ) : void

Load the sql file and then execute it

Throws
Exception Description
\BuildException
methodpublicmaybeConfigure( ) : void

methodpublicperform( ) : void

methodprotectedprocessResults( ) : void

Passes results from query to any formatters.

Throws
Exception Description
\PDOException
methodpublicrunStatements(  $reader ) : void

read in lines and execute them

Parameters
Name Type Description
$reader
Throws
Exception Description
\PDOException, IOException
methodpublicsetAutocommit( ) : void

methodpublicsetCaching( ) : void

methodpublicsetDelimiter(  $delimiter ) : void

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

methodpublicsetDelimiterType( string $delimiterType ) : void

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
methodpublicsetDescription( ) : void

methodpublicsetEncoding( \encoding $encoding ) : void

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

methodpublicsetFetchmode( mixed $mode ) : void

Sets the fetch mode to use for the PDO resultset.

Parameters
Name Type Description
$mode mixed

The PDO fetchmode integer or constant name.

methodpublicsetLocation( ) : void

methodpublicsetOnerror(  $action ) : void

Action to perform when statement fails: continue, stop, or abort optional; default "abort"

Parameters
Name Type Description
$action
methodpublicsetOwningTarget( ) : void

methodpublicsetPassword( ) : void

methodpublicsetProject( ) : void

methodpublicsetRuntimeConfigurableWrapper( ) : void

methodpublicsetSrc(  $srcFile ) : void

Set the name of the SQL file to be run.

Required unless statements are enclosed in the build file

Parameters
Name Type Description
$srcFile
methodpublicsetTaskName( ) : void

methodpublicsetTaskType( ) : void

methodpublicsetUrl( ) : void

methodpublicsetUserid( ) : void

methodpublicsetVersion( ) : void

\PDOSQLExecTransaction

Package: phing\tasks\ext\pdo

"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.

Properties

Propertyprivate  $parent= ''
Details
Type
n/a
Propertyprivate  $tSqlCommand= '""'
Default value""Details
Type
n/a
Propertyprivate  $tSrcFile= 'null'
Default valuenullDetails
Type
n/a

Methods

methodpublic__construct(  $parent ) : void

Parameters
Name Type Description
$parent
methodpublicaddText(  $sql ) : void

Parameters
Name Type Description
$sql
methodpublicrunTransaction( ) : void

Throws
Exception Description
\IOException, PDOException
methodpublicsetSrc(  $src ) : void

Parameters
Name Type Description
$src
Documentation was generated by DocBlox 0.17.1.