diff options
author | Johannes Schlüter <johannes@php.net> | 2011-08-31 20:30:08 +0000 |
---|---|---|
committer | Johannes Schlüter <johannes@php.net> | 2011-08-31 20:30:08 +0000 |
commit | 7d25510b1b0cb0710e884483efcb9ef1fe8a4927 (patch) | |
tree | 997fa7be057db8413226deebb5932336c4a35205 /ext/mysql/php_mysql.c | |
parent | 86b563ea0fda8903d23624ba1617ff5dd7645d3b (diff) | |
download | php-git-7d25510b1b0cb0710e884483efcb9ef1fe8a4927.tar.gz |
- Register extensions using mysqlnd (mysql, myslqi, pdo_mysql) with mysqlnd
Diffstat (limited to 'ext/mysql/php_mysql.c')
-rw-r--r-- | ext/mysql/php_mysql.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 3f9a7d653a..89fe7b15ff 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -529,6 +529,31 @@ static PHP_GINIT_FUNCTION(mysql) } /* }}} */ +#ifdef MYSQL_USE_MYSQLND +static MYSQLND *mysql_convert_zv_to_mysqlnd(zval *zv) +{ + php_mysql_conn *mysql; + + if (Z_TYPE_P(zv) != IS_RESOURCE) { + /* Might be nicer to check resource type, too, but ext/mysql is the only one using resources so emitting an error is not to bad, while usually this hook should be silent */ + return NULL; + } + + mysql = (php_mysql_conn *)zend_fetch_resource(&zv TSRMLS_CC, -1, "MySQL-Link", NULL, 2, le_link, le_plink); + + if (!mysql) { + return NULL; + } + + return mysql->conn; +} + +static mysqlnd_api_extension_t mysqlnd_api_ext = { + &mysql_module_entry, + mysql_convert_zv_to_mysqlnd +}; +#endif + /* {{{ PHP_MINIT_FUNCTION */ ZEND_MODULE_STARTUP_D(mysql) @@ -557,6 +582,10 @@ ZEND_MODULE_STARTUP_D(mysql) #endif #endif +#ifdef MYSQL_USE_MYSQLND + mysqlnd_register_api_extension(&mysqlnd_api_ext); +#endif + return SUCCESS; } /* }}} */ |