Added status to mysqli_resource:
MYSQLI_STATUS_UNKNOWN
MYSQLI_STATUS_CLEARED (for future use)
MYSQLI_STATUS_INITIALIZED (after mysqli_init and mysqli_stmt_init)
MYSQLI_STATUS_VALID (for valid objects)
removed valid flag
changed MYSQLI_FETCH_RESOURCE
added last parameter __check which specifies the status
(mysqli_stmt_bind_result() makes huge allocation when column empty)
#this shows some leaks now, which has to be investigated but closes the
#bug report.
4.1.15 (client) -> 5.x (server) because of the incompatibility because of
decimal in the protocol binding may fail. Don't close the statement in
that case because subsequent ->execute() will crash or any other function
that will try to use already freed (and in debug mode thrashed) pointer.
#probably more problems exist because of the 4.1.x -> 5.x protocol
#incompatibility
#this is a partial fix but it cannot be better. the user has to call
#$stmt->store_result() and for a BLOB/MEDIUTEXT (and larger) space will be
#allocated as big as the biggest column value.
on amd64 (probably other 64 bit arch).
- use ulong for this boolean variable, as it was before
- throw an warning if offset passed to mysqli_stmt_data_seek is negative
mysqli_driver
mysqli_warning
mysqli_exception
mysqli_sql_exception
Improved embedded server support
changed testsuite to work also with embedded server
Made statement and resultset classes extendable
minor fixes
mysql client lib now uses php_local_infile functions by default, which allows
to use php_fopen_wrapper: e.g. LOAD DATA LOCAL INFILE 'http://foo.com/bar.csv' ...
mysql_set_local_infile_handler now only supports a callback function for read.
used to return "" and not bool(false). It's not worth keeping it because
STR_FREE() and zval_dtor() always have to check for it and it slows down
the general case. In addition, it seems that empty_string has been abused
quite a lot, and was used not only for setting zval's but generally in
PHP code instead of "", which wasn't the intention. Last but not least,
nuking empty_string should improve stability as I doubt every place
correctly checked if they are not mistakenly erealloc()'ing it or
calling efree() on it.
NOTE: Some code is probably broken. Each extension maintainer should
check and see that my changes are OK. Also, I haven't had time to touch
PECL yet. Will try and do it tomorrow.