Hi everyone,

I'm working on an extension for an RDF triple store that is built on top
of MySQL 5+, and I'd like to be able to share the MySQL connection with
mysqli. Unfortunately, since the mysqli header isn't installed, I can't
seem to find a way that could withstand changes in mysqli.

What I've come up with is to create a trivial function which will take a
(zval *) and return a (MYSQL *). I know it's a bit of a hack, but I was
trying to be as unintrusive as possible.

Patch is attached.

-Evan Nemerson

Index: mysqli.c
===================================================================
RCS file: /repository/php-src/ext/mysqli/mysqli.c,v
retrieving revision 1.97
diff -u -r1.97 mysqli.c
--- mysqli.c	27 Jul 2006 10:53:03 -0000	1.97
+++ mysqli.c	2 Sep 2006 07:10:52 -0000
@@ -331,6 +331,16 @@
 }
 /* }}} */
 
+/* {{{ MYSQL * mysqli_get_connection(zval *mysql_link TSRMLS_DC) */
+MYSQL * mysqli_get_connection(zval *mysql_link, INTERNAL_FUNCTION_PARAMETERS) {
+	MY_MYSQL		*mysql;
+
+	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
+
+	return mysql->mysql;
+}
+/* }}} */
+
 static union _zend_function *php_mysqli_constructor_get(zval *object TSRMLS_DC)
 {
 	mysqli_object *obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC);

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to