mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
220 lines
7.0 KiB
PHP
Executable File
220 lines
7.0 KiB
PHP
Executable File
<?php
|
|
/*
|
|
* $Id: Connection.php,v 1.29 2005/10/17 19:03:50 dlawson_mi Exp $
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* This software consists of voluntary contributions made by many individuals
|
|
* and is licensed under the LGPL. For more information please see
|
|
* <http://creole.phpdb.org>.
|
|
*/
|
|
|
|
include_once 'creole/ResultSet.php'; // we need this for the fetchmode ResultSet flags (constants) that are passed to executeQuery()
|
|
|
|
/**
|
|
* Connection is an abstract base class for DB dialect implementations, and must be
|
|
* inherited by all such.
|
|
*
|
|
* Developer notes:
|
|
* (1) Make sure that your Connection class can be serialized. See the ConnectionCommon __sleep() and __wakeup() implimentation.
|
|
*
|
|
* @author Hans Lellelid <hans@xmpl.org>
|
|
* @version $Revision: 1.29 $
|
|
* @package creole
|
|
*/
|
|
interface Connection {
|
|
|
|
// Constants that define transaction isolation levels.
|
|
// [We don't have any code using these yet, so there's no need
|
|
// to initialize these values at this point.]
|
|
// const TRANSACTION_NONE = 0;
|
|
// const TRANSACTION_READ_UNCOMMITTED = 1;
|
|
// const TRANSACTION_READ_COMMITTED = 2;
|
|
// const TRANSACTION_REPEATABLE_READ = 3;
|
|
// const TRANSACTION_SERIALIZABLE = 4;
|
|
|
|
/**
|
|
* Connect to a database and log in as the specified user.
|
|
*
|
|
* @param array $dsn The PEAR-style data source hash.
|
|
* @param int $flags (optional) Flags for connection (e.g. Creole::PERSISTENT). These flags
|
|
* may apply to any of the driver classes.
|
|
*/
|
|
public function connect($dsn, $flags = false);
|
|
|
|
/**
|
|
* Get the PHP native resource for the database connection/link.
|
|
* @return resource
|
|
*/
|
|
public function getResource();
|
|
|
|
/**
|
|
* Get any flags that were passed to connection.
|
|
* @return int
|
|
*/
|
|
public function getFlags();
|
|
|
|
/**
|
|
* Get the DSN array used by connect() method to connect to database.
|
|
* @see connect()
|
|
* @return array
|
|
*/
|
|
public function getDSN();
|
|
|
|
/**
|
|
* Gets a DatabaseInfo class for the current database.
|
|
*
|
|
* This is not modeled on the JDBC MetaData class, but provides a possibly more
|
|
* useful metadata system. All the same, there may eventually be a getMetaData()
|
|
* which returns a class that behaves like JDBC's DatabaseMetaData.
|
|
*
|
|
* @return DatabaseInfo
|
|
*/
|
|
public function getDatabaseInfo();
|
|
|
|
/**
|
|
* Loads and returns an IdGenerator object for current RDBMS.
|
|
* @return IdGenerator
|
|
*/
|
|
public function getIdGenerator();
|
|
|
|
/**
|
|
* Prepares a query for multiple execution with execute().
|
|
*
|
|
* With some database backends, this is emulated.
|
|
* prepare() requires a generic query as string like
|
|
* "INSERT INTO numbers VALUES(?,?,?)". The ? are placeholders.
|
|
*
|
|
* IMPORTANT: All occurrences of the placeholder (?) will be assumed
|
|
* to be a parameter. Therefore be sure not to have ? anywhere else in
|
|
* the query.
|
|
*
|
|
* So, ... DO NOT MIX WILDCARDS WITH ALREADY-PREPARED QUERIES
|
|
*
|
|
* INCORRECT:
|
|
* SELECT * FROM mytable WHERE id = ? AND title = 'Where are you?' and body LIKE ?
|
|
*
|
|
* CORRECT:
|
|
* SELECT * FROM mytable WHERE id = ? AND title = ? and body LIKE ?
|
|
*
|
|
* @param string $sql The query to prepare.
|
|
* @return PreparedStatement
|
|
* @throws SQLException
|
|
* @see PreparedStatement::execute()
|
|
*/
|
|
public function prepareStatement($sql);
|
|
|
|
/**
|
|
* Creates a new empty Statement.
|
|
* @return Statement
|
|
*/
|
|
public function createStatement();
|
|
|
|
/**
|
|
* If RDBMS supports native LIMIT/OFFSET then query SQL is modified
|
|
* so that no emulation is performed in ResultSet.
|
|
*
|
|
* @param string &$sql The query that will be modified.
|
|
* @param int $offset
|
|
* @param int $limit
|
|
* @return void
|
|
* @throws SQLException - if unable to modify query for any reason.
|
|
*/
|
|
public function applyLimit(&$sql, $offset, $limit);
|
|
|
|
/**
|
|
* Executes the SQL query in this PreparedStatement object and returns the resultset.
|
|
*
|
|
* @param string $sql The SQL statement.
|
|
* @param int $fetchmode
|
|
* @return object ResultSet
|
|
* @throws SQLException if a database access error occurs.
|
|
*/
|
|
public function executeQuery($sql, $fetchmode = null);
|
|
|
|
/**
|
|
* Executes the SQL INSERT, UPDATE, or DELETE statement.
|
|
*
|
|
* @param string $sql This method may optionally be called with the SQL statement.
|
|
* @return int Number of affected rows (or 0 for drivers that return nothing).
|
|
* @throws SQLException if a database access error occurs.
|
|
*/
|
|
public function executeUpdate($sql);
|
|
|
|
/**
|
|
* Creates a CallableStatement object for calling database stored procedures.
|
|
*
|
|
* @param string $sql
|
|
* @return CallableStatement
|
|
*/
|
|
public function prepareCall($sql);
|
|
|
|
/**
|
|
* Free the db resources.
|
|
* @return void
|
|
*/
|
|
public function close();
|
|
|
|
/**
|
|
* Returns false if connection is closed.
|
|
* @return boolean
|
|
*/
|
|
public function isConnected();
|
|
|
|
/**
|
|
* Get auto-commit status.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function getAutoCommit();
|
|
|
|
/**
|
|
* Enable/disable automatic commits.
|
|
*
|
|
* Pushes SQLWarning onto $warnings stack if the autocommit value is being changed mid-transaction. This function
|
|
* is overridden by driver classes so that they can perform the necessary begin/end transaction SQL.
|
|
*
|
|
* If auto-commit is being set to TRUE, then the current transaction will be committed immediately.
|
|
*
|
|
* @param boolean $bit New value for auto commit.
|
|
* @return void
|
|
*/
|
|
public function setAutoCommit($bit);
|
|
|
|
/**
|
|
* Begins a transaction (if supported).
|
|
*
|
|
*/
|
|
public function begin();
|
|
|
|
/**
|
|
* Commits statements in a transaction.
|
|
*
|
|
*/
|
|
public function commit();
|
|
|
|
/**
|
|
* Rollback changes in a transaction.
|
|
*
|
|
*/
|
|
public function rollback();
|
|
|
|
/**
|
|
* Gets the number of rows affected by the data manipulation
|
|
* query.
|
|
*
|
|
* @return int Number of rows affected by the last query.
|
|
*/
|
|
public function getUpdateCount();
|
|
|
|
} |