SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges Applies the changes made to a data graph back to the database

说明

SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object ) : void
Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

Given a PDO database handle and the special root object of a data graph, examine the change summary in the datagraph and applies the changes to the database. The changes that it can apply can be creations of data objects, deletes of data objects, and modifications to properties of data objects.

参数

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

The special root object which is at the top of every SDO data graph.

返回值

None. Note however that the datagraph that was passed is still intact and usable. Furthermore, if data objects were created and written back to a table with autogenerated primary keys, then those primary keys will now be set in the data objects. If the changes were successfully written, then the change summary associated with the datagraph will have been cleared, so that it is possible to now make further changes to the data graph and apply those changes in turn. In this way it is possible to work with the same data graph and apply changes repeatedly.

错误/异常

SDO_DAS_Relational::applyChanges() can throw an SDO_DAS_Relational_Exception if it is unable to apply all the changes correctly.

The Relational DAS starts a database transaction before beginning to apply the changes and will commit the transaction only if they are all successful. The Relational DAS generates qualified update and delete statements which contain a where clause that specifies that the row to be updated or deleted must contain the same values that it did when the data was first retrieved. This is how the optimistic concurrency is implemented. If any of the qualified update or delete statements fails to update or delete their target row, it may be because the data has been altered in the database in the meantime. In any event, if any update fails for any reason, the transaction is rolled back and an exception thrown. The exception will contain the generated SQL statement that failed.

The Relational DAS also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

范例

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method. Please see also the section on Tracing to see how you can see what SQL statements are generated by the Relational DAS.

相关文章
php kadm5 函数 flush all changes to the kerberos databasephp sdo das relational sdo das relational 函数php sdo 函数 get a data object s change summaryphp sdo das relational 函数 applies the changes made to a data graph back to the databasephp sdo das relational 函数 creates an instance of a relational data access servicephp sdo das relational 函数 returns the special root object in an otherwise empty data graph. used when creating a data graph from scratchphp sdo das relational 函数 executes an sql query passed as a prepared statement with a list of values to substitute for placeholders and return the results as a normalised data graphphp sdo das relational 函数 executes a given sql query against a relational database and returns the results as a normalised data graphphp sdo das xml 函数 sets the given string as xml versionphp sdo das xml 函数 to load a second or subsequent schema file to a sdo das xml objectphp sdo das xml 函数 to create sdo das xml object for a given schema filephp sdo das xml 函数 creates sdo dataobject for a given namespace uri and type namephp sdo das xml 函数 creates an xml document object from scratch without the need to load a document from a file or stringphp sdo 函数 get a data object s containerphp sdo 函数 get the sequence for a data objectphp sdo 函数 return the name of the type for a data objectphp sdo 函数 return the namespace uri of the type for a data objectphp sdo 函数 get the property which defines the containment relationship to the data objectphp sdo das relational 范例php sdo das relational limitations
关注编程学问公众号