Introduction - Sequences | MDB |
MDB | |
PEAR Manual | |
prepareQuery() and executeQuery*() give you more power and flexibilty for query execution. You can use them, if you have to do more than one equal query (i.e. adding a list of adresses to a database) or if you want to support different databases, which have different implementations of the SQL standard.
Imagine you want to support two databases with different INSERT syntax:
db1 : INSERT INTO tbl_name ( col1, col2 ... ) VALUES ( expr1, expr2 ... ) db2 : INSERT INTO tbl_name SET col1=expr1, col2=expr2 ... |
|
To use the features above, you have to do two steps. Step one is to prepareQuery the statement and the second is to executeQuery it.
Prepare() has to be called with the generic statement at least once. It returns a handle for the statement.
To create a generic statement is simple. Write the SQL query as usual, i.e.
SELECT surname, name, age FROM person WHERE name = 'name_to_find' AND age < 'age_limit' |
SELECT surname, name, age FROM person WHERE name = ? AND age < ? |
prepareQuery() can handle different types of placeholders or wildcards.
After preparing the statement, you can execute the query. This means to assign the variables to the prepared statement. To do this, executeQuery() requires two arguments, the statement handle of prepareQuery() and an array with the values to assign. The array has to be numerically ordered. The first entry of the array represents the first wildcard, the second the second wildcard etc. The order is independent from the used wildcard char.
Inserting data into a datebase
|
INSERT INTO numbers VALUES( '1', 'one', 'en') INSERT INTO numbers VALUES( '2', 'two', 'to') INSERT INTO numbers VALUES( '3', 'three', 'tre') INSERT INTO numbers VALUES( '4', 'four', 'fire') |
Using executeMultiple() instead of executeQuery()
|
If executeQuery*() fails a MDB_Error, else MDB_OK will returned.
Introduction - Sequences | MDB |
MDB | |
PEAR Manual | |