-
Notifications
You must be signed in to change notification settings - Fork 397
/
ConnectionInterface.php
167 lines (153 loc) · 6.3 KB
/
ConnectionInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<?php
/**
* This file is part of the Propel package.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @license MIT License
*/
namespace Propel\Runtime\Connection;
/**
* Interface for Propel Connection object.
* Based on the PDO interface.
* @see http://php.net/manual/en/book.pdo.php
*
* @author Francois Zaninotto
*/
interface ConnectionInterface
{
/**
* @param string $name The datasource name associated to this connection
*/
public function setName($name);
/**
* @return string The datasource name associated to this connection
*/
public function getName();
/**
* Turns off autocommit mode.
*
* While autocommit mode is turned off, changes made to the database via
* the Connection object instance are not committed until you end the
* transaction by calling Connection::commit().
* Calling Conneciton::rollBack() will roll back all changes to the database
* and return the connection to autocommit mode.
*
* @return Boolean TRUE on success or FALSE on failure.
*/
public function beginTransaction();
/**
* Commits a transaction.
*
* commit() returns the database connection to autocommit mode until the
* next call to connection::beginTransaction() starts a new transaction.
*
* @return Boolean TRUE on success or FALSE on failure.
*/
public function commit();
/**
* Rolls back a transaction.
*
* Rolls back the current transaction, as initiated by beginTransaction().
* It is an error to call this method if no transaction is active.
* If the database was set to autocommit mode, this function will restore
* autocommit mode after it has rolled back the transaction.
*
* @return Boolean TRUE on success or FALSE on failure.
*/
public function rollBack();
/**
* Retrieve a database connection attribute.
*
* @param string $attribute The name of the attribute to retrieve,
* e.g. PDO::ATTR_AUTOCOMMIT
*
* @return mixed A successful call returns the value of the requested attribute.
* An unsuccessful call returns null.
*/
public function getAttribute($attribute);
/**
* Set an attribute.
*
* @param string $attribute
* @param mixec $value
*
* @return Boolean TRUE on success or FALSE on failure.
*/
public function setAttribute($attribute, $value);
/**
* Execute an SQL statement and return the number of affected rows.
*
* @param string $statement The SQL statement to prepare and execute.
* Data inside the query should be properly escaped.
*
* @return int The number of rows that were modified or deleted by the SQL
* statement you issued. If no rows were affected, returns 0.
*/
public function exec($statement);
/**
* Prepares a statement for execution and returns a statement object.
*
* Prepares an SQL statement to be executed by the Statement::execute() method.
* The SQL statement can contain zero or more named (:name) or question mark (?)
* parameter markers for which real values will be substituted when the statement
* is executed. You cannot use both named and question mark parameter markers
* within the same SQL statement; pick one or the other parameter style. Use
* these parameters to bind any user-input, do not include the user-input
* directly in the query.
*
* @param string $statement This must be a valid SQL statement for the target
* database server.
* @param array $driver_options
*
* @return \Propel\Runtime\Connection\StatementInterface|bool A Statement object if the database server
* successfully prepares, FALSE otherwise.
* @throws \Propel\Runtime\Connection\ConnectionException depending on error handling.
*/
public function prepare($statement, $driver_options = array());
/**
* Executes an SQL statement, returning a result set as a Statement object.
*
* @param string $statement The SQL statement to prepare and execute.
* Data inside the query should be properly escaped.
*
* @return \Propel\Runtime\Connection\StatementInterface|bool A Statement object if the database server
* successfully prepares, FALSE otherwise.
* @throws \Propel\Runtime\Connection\ConnectionException depending on error handling.
*/
public function query();
/**
* Quotes a string for use in a query.
*
* Places quotes around the input string (if required) and escapes special
* characters within the input string, using a quoting style appropriate to
* the underlying driver.
*
* @param string $string The string to be quoted.
* @param int $parameter_type Provides a data type hint for drivers that
* have alternate quoting styles.
*
* @return string A quoted string that is theoretically safe to pass into an
* SQL statement. Returns FALSE if the driver does not support
* quoting in this way.
*/
public function quote($string, $parameter_type = 2);
/**
* Returns the ID of the last inserted row or sequence value.
*
* Returns the ID of the last inserted row, or the last value from a sequence
* object, depending on the underlying driver. For example, PDO_PGSQL()
* requires you to specify the name of a sequence object for the name parameter.
*
* @param string $name Name of the sequence object from which the ID should be
* returned.
*
* @return string If a sequence name was not specified for the name parameter,
* returns a string representing the row ID of the last row that was
* inserted into the database.
* If a sequence name was specified for the name parameter, returns
* a string representing the last value retrieved from the specified
* sequence object.
*/
public function lastInsertId($name = null);
}