PDO Feature Support
We've recently completed adding full support for PDO to the Runtime Converter library. The library supports all native classes using its Java <-> PHP bridge, but certain features like FETCH_OBJECT and bindParam do not work by default because PHP cannot read Java classes and cannot read Java variables.
This has been fixed by adding a subclass that intercepts these calls when needed. For example, when FETCH_CLASS is used, the library requests from PDO the rowset via FETCH_ASSOC, and then creates the proper Java object after PDO has returned. With bindParam, the Java reference is held in a map, and re-bound each time execute is called. PDOStatement::bindValue (non-reference version of bindParam) and other calls nativly supported by the bridge system are handled without overrides.
In the future, we expect to replace the bridge code with a JDBC wrapper implementing PDO in Java.
Note that these updates have not been released, but PDO is generally working in current release.
Features added:
- PDO::FETCH_CLASS and PDO::FETCH_INTO
- PDOStatement::fetchObject
- PDOStatement::bindParam
- PDOStatement::fetchColumn
- PDOStatement::setFetchMode
Other features like fetch, fetchAll, execute, prepare, etc are working normally with the bridge system.