DB_common::autoPrepare()
Description
Automatically builds an INSERT or UPDATE SQL statement so it can later be used by execute() or executeMultiple().
Parameter
- string $table
name of the table
- array $table_fields
ordered array containing the fields names
Be aware that these fields are assigned ? placeholders, therefore the data you pass to them in the execute() will be automatically escaped and quoted according to the current DBMS's requirements.
- integer $mode
type of query to make (DB_AUTOQUERY_INSERT or DB_AUTOQUERY_UPDATE)
- string $where
a string to be used in the WHERE clause. This is only used when $mode is DB_AUTOQUERY_UPDATE. The string is put directly into the query, so you must escape and quote literals according to the DBMS's standards.
Throws
Table 39-1. Possible PEAR_Error values
| Error code | Error message | Reason | Solution |
|---|---|---|---|
| DB_ERROR_NEED_MORE_DATA | insufficient data supplied | The ordered array, which has to contain fields names, is empty. | Check and correct your fields names array. |
| DB_ERROR_SYNTAX | syntax error | You use an unknown mode. | Available modes are only DB_AUTOQUERY_INSERT for INSERT queries or DB_AUTOQUERY_UPDATE for UPDATE queries. |
| DB_ERROR_NODBSELECTED | no database selected | No database was chosen. | Check the DSN in connect(). |
| every other error code | Database specific error | Check the database related section of PHP-Manual to detect the reason for this error. |
Example
Example 39-1. Using autoPrepare() in insert mode
|
Example 39-2. Using autoPrepare() in update mode
|
See
"Intro - Prepare & Execute", "Intro - autoPrepare & autoExecute", prepare(), execute(), executeMultiple(), autoExecute()
