Ingres II functions Ingres II &warn.experimental; These functions allow you to access Ingres II database servers. In order to have these functions available, you must compile php with Ingres support by using the option. You need the Open API library and header files included with Ingres II. If the II_SYSTEM environment variable isn't correctly set you may have to use to specify your Ingres installation directory. When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environement variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine. If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be commited or rolled back before opening another transaction (which is automaticaly done when sending the first query). ingres_connect Open a connection to an Ingres II database Description resource ingres_connect string database string username string password &warn.experimental.func; Returns a Ingres II link resource on success, or &false; on failure. ingres_connect opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class]. If some parameters are missing, ingres_connect uses the values in php.ini for ingres.default_database, ingres.default_user, and ingres.default_password. The connection is closed when the script ends or when ingres_close is called on this link. All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time. <function>ingres_connect</function> example ]]> <function>ingres_connect</function> example using default link ]]> See also ingres_pconnect and ingres_close. ingres_pconnect Open a persistent connection to an Ingres II database Description resource ingres_pconnect string database string username string password &warn.experimental.func; Returns a Ingres II link resource on success, or &false; on failure. See ingres_connect for parameters details and examples. There are only 2 differences between ingres_pconnect and ingres_connect : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close will not close links established by ingres_pconnect). This type of link is therefore called 'persistent'. See also ingres_connect and ingres_close. ingres_close Close an Ingres II database connection Description bool ingres_close resource link &warn.experimental.func; Returns &true; on success, or &false; on failure. ingres_close closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used. ingres_close isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script. See also ingres_connect and ingres_pconnect. ingres_query Send a SQL query to Ingres II Description bool ingres_query string query resource link &warn.experimental.func; Returns &true; on success, or &false; on failure. ingres_query sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide) The query becomes part of the currently open transaction. If there is no open transaction, ingres_query opens a new transaction. To close the transaction, you can either call ingres_commit to commit the changes made to the database or ingres_rollback to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback). You can also use ingres_autocommit before opening a new transaction to have every SQL query immediatly commited. Some types of SQL queries can't be sent with this function: close (see ingres_close) commit (see ingres_commit) connect (see ingres_connect) disconnect (see ingres_close) get dbevent prepare to commit rollback (see ingres_rollback) savepoint set autocommit (see ingres_autocommit) all cursor related queries are unsupported <function>ingres_query</function> example ]]> See also ingres_fetch_array, ingres_fetch_object, ingres_fetch_row, ingres_commit, ingres_rollback, and ingres_autocommit. ingres_num_rows Get the number of rows affected or returned by the last query Description int ingres_num_rows resource link &warn.experimental.func; For delete, insert or update queries, ingres_num_rows returns the number of rows affected by the query. For other queries, ingres_num_rows returns the number of rows in the query's result. This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array, ingres_fetch_object or ingres_fetch_row the server will delete the result's data and the script won't be able to get them. You should instead retrieve the result's data using one of these fetch functions in a loop until it returns &false;, indicating that no more results are available. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_num_fields Get the number of fields returned by the last query Description int ingres_num_fields resource link &warn.experimental.func; ingres_num_fields returns the number of fields in the results returned by the Ingres server after a call to ingres_query See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_field_name Get the name of a field in a query result. Description string ingres_field_name int index resource link &warn.experimental.func; ingres_field_name returns the name of a field in a query result, or &false; on failure. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object and ingres_fetch_row. ingres_field_type Get the type of a field in a query result Description string ingres_field_type int index resource link &warn.experimental.func; ingres_field_type returns the type of a field in a query result, or &false; on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_field_nullable Test if a field is nullable Description bool ingres_field_nullable int index resource link &warn.experimental.func; ingres_field_nullable returns &true; if the field can be set to the &null; value and &false; if it can't. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_field_length Get the length of a field Description int ingres_field_length int index resource link &warn.experimental.func; ingres_field_length returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_field_precision Get the precision of a field Description int ingres_field_precision int index resource link &warn.experimental.func; ingres_field_precision returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_field_scale Get the scale of a field Description int ingres_field_scale int index resource link &warn.experimental.func; ingres_field_scale returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C. index is the number of the field and must be between 1 and the value given by ingres_num_fields. See also ingres_query, ingres_fetch_array, ingres_fetch_object, and ingres_fetch_row. ingres_fetch_array Fetch a row of result into an array Description array ingres_fetch_array int result_type resource link &warn.experimental.func; ingres_fetch_array Returns an array that corresponds to the fetched row, or &false; if there are no more rows. This function is an extended version of ingres_fetch_row. In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column. result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default). Speed-wise, the function is identical to ingres_fetch_object, and almost as quick as ingres_fetch_row (the difference is insignificant). <function>ingres_fetch_array</function> example ]]> See also ingres_query, ingres_num_fields, ingres_field_name, ingres_fetch_object, and ingres_fetch_row. ingres_fetch_row Fetch a row of result into an enumerated array Description array ingres_fetch_row resource link &warn.experimental.func; ingres_fetch_row returns an array that corresponds to the fetched row, or &false; if there are no more rows. Each result column is stored in an array offset, starting at offset 1. Subsequent call to ingres_fetch_row would return the next row in the result set, or &false; if there are no more rows. <function>ingres_fetch_row</function> example ]]> See also ingres_num_fields, ingres_query, ingres_fetch_array, and ingres_fetch_object. ingres_fetch_object Fetch a row of result into an object. Description object ingres_fetch_object int result_type resource link &warn.experimental.func; ingres_fetch_object Returns an object that corresponds to the fetched row, or &false; if there are no more rows. This function is similar to ingres_fetch_array, with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names). The optional argument result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH. Speed-wise, the function is identical to ingres_fetch_array, and almost as quick as ingres_fetch_row (the difference is insignificant). <function>ingres_fetch_object</function> example user_id; echo $row->fullname; } ?> ]]> See also ingres_query, ingres_num_fields, ingres_field_name, ingres_fetch_array, and ingres_fetch_row. ingres_rollback Roll back a transaction Description bool ingres_rollback resource link &warn.experimental.func; ingres_rollback rolls back the currently open transaction, actually canceling all changes made to the database during the transaction. This closes the transaction. A new one can be open by sending a query with ingres_query. See also ingres_query, ingres_commit, and ingres_autocommit. ingres_commit Commit a transaction Description bool ingres_commit resource link &warn.experimental.func; ingres_commit commits the currently open transaction, making all changes made to the database permanent. This closes the transaction. A new one can be open by sending a query with ingres_query. You can also have the server commit automaticaly after every query by calling ingres_autocommit before opening the transaction. See also ingres_query, ingres_rollback, and ingres_autocommit. ingres_autocommit Switch autocommit on or off Description bool ingres_autocommit resource link &warn.experimental.func; ingres_autocommit is called before opening a transaction (before the first call to ingres_query or just after a call to ingres_rollback or ingres_autocommit) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off). When the autocommit mode is on, every query is automaticaly commited by the server, as if ingres_commit was called after every call to ingres_query. See also ingres_query, ingres_rollback, and ingres_commit.