2008 R4.0 Release
This release is a major release. Several new features have been added to this version including auto commit, multiple SQL statements support, named parameter and so on. Accordingly new functions are added, and several bugs have been fixed.
The following functions have been added:
Changed and Enhanced Features:
- Add named parameter support:
cubrid_bind() supports both positioal and named parameter when binding parameters for SQL statement.
- Add multiple SQL statements support:
cubrid_execute() supports multiple SQL statements when the option CUBRID_EXEC_QUERY_ALL is set. The return value of cubrid_execute() is the result of the first query, and you can use cubrid_next_result() to get the result of next query if it is executed successfully.
- Add auto commit support:
CUBRID PHP supports auto-commit mode. You can set auto-commit mode when connecting to CUBRID by using cubrid_connect_with_url(). You can also get auto-commit mode of current connection by using cubrid_get_autocommit() and change it by using cubrid_set_autocommit().
- Add database parameter setting support:
cubrid_set_db_parameter() can be used to set the database transaction isolation level and lock timeout value.
- cubrid_insert_id() returns only one value:
cubrid_insert_id() will not return an array, instead it will return a string representing the ID generated by the AUTO_INCREMENT column which is updated by the previous INSERT query.
CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, the cubrid_insert_id() should not be used even if it will return a value.
- cubrid_lob_size() return value type changes:
cubrid_lob_size() will return the lob size as a string.
- Fix a bug in cubrid_fetch_object: cubrid_fetch_object can't work with php-5.2.x;
- Fix a bug in cubrid_put: There may be column name string copy error if the length of column name is more than 4;
- Fix a bug which may casue memory leak: After calling array_init(return_value), if error occures, it should destroy the array before returning false;
- Fix a bug about BLOB/CLOB: When inserting LOB data, if the data size is large enough, it will fails. And if the LOB data is in a file, and it is too large to be put into memory, you can bind a file path name when binding the LOB data;
- Fix a bug about CLOB: When binding data type is CLOB, it will fail when inserting it into CUBRID.