4
When I tested the above mentioned MySQLi connector I had NO issues as far as I could tell. But I only used it with the base install of xoops and no modules. I accessed every menu and every option and it worked perfect as you would expect.
Be aware that any modules that directly access the MySQL connector will break with use of any other connector. It is a very simple fix to use the MySQLi connector but it does need to be considered.
Also there is a count attribute that I can not think of off the top of my head. I think it is called "Affected records". With MySQL it will count all the records that were affected by an SQL statement such as Select, Insert, Delete and any others I am forgetting. With MySQL this works fine but in every other database BUT MySQL this attribute does not work with Select statements at all. (I believe this is the case but I have to look back at my code to know which it was.)
This loss of Affectedrows is not easily fixed and the code accessing it in the module or core has to be changed. The solutions I have seen involve doing the same select with a "count" which means another query or the code has to count the records as it accesses them. In my PDO connector I am intercepting the call and checking for a select and if it is a select statement I try to guess the select and do a "count" then do the normal select statement but it is a dirty solution and I don't feel comfortable with it.
Other things to be aware of with MySQLi and other connectors...
MySQL was implemented before OOP and thus is totally Procedurally based.
MySQLi was designed to be a direct drop in replacement for MySQL and as such has a Procedural mode that can directly replace MySQL but it also has an OOP mode that allows the programming to be totally OOP.
PDO is totally OOP and has no support for Procedural operation.
These differences will not be noticeable to the user but are worth noting.
The old MySQL connector was designed for MySQL 3 and does not support many of the new functions of MySQL4 or 5. With us moving to PDO as the choice I do not believe we should add any support for the new functions to the MySQLi connector. Assuming we "break all pre 2.6" modules as Trabis suggests I believe 2.6 should totally move to PDO and not support MySQL directly at all. However the MySQLi connector makes sense to help 2.5.x stay compatible when MySQL connector is removed.
There were two omissions from MySQLi to PDO that I am aware of. One had to do with the affectedrows I mentioned above but the other refers to a feature new to MySQLi as compared to MySQL. It has to do with stored procedures. I think it was something along the lines of with MySQL you could call multiple stored procedures simultaneously where as other databases available could only call them one at a time. I am typing this from memory so I might be a little inaccurate. But I am assuming that at this time MySQLi will be available to move to when MySQL connector support is removed from PHP. But should not be included in 2.6 if we break the modules.
Attending College working towards Bachelors in Software Engineering and Network Security.