]> granicus.if.org Git - php/commitdiff
- Add function pdo_drivers()
authorMarcus Boerger <helly@php.net>
Tue, 22 Mar 2005 10:36:25 +0000 (10:36 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 22 Mar 2005 10:36:25 +0000 (10:36 +0000)
ext/pdo/pdo.c

index c7d84139898cec7162a0bf7ae71b37c75eeef71a..2c984039eb2ceb400991b21df86cbbfaf93bcf50 100755 (executable)
@@ -62,8 +62,26 @@ PDO_API zend_class_entry *php_pdo_get_exception(void)
 
 zend_class_entry *pdo_dbh_ce, *pdo_dbstmt_ce, *pdo_row_ce;
 
+/* proto array pdo_drivers()
+ Return array of available PDO drivers */
+PHP_FUNCTION(pdo_drivers)
+{
+       HashPosition pos;
+       pdo_driver_t **pdriver;
+       
+       array_init(return_value);
+
+       zend_hash_internal_pointer_reset_ex(&pdo_driver_hash, &pos);
+       while (SUCCESS == zend_hash_get_current_data_ex(&pdo_driver_hash, (void**)&pdriver, &pos)) {
+               add_next_index_stringl(return_value, (char*)(*pdriver)->driver_name, (*pdriver)->driver_name_len, 1);
+               zend_hash_move_forward_ex(&pdo_driver_hash, &pos);
+       }
+}
+/* }}} */
+
 /* {{{ pdo_functions[] */
 function_entry pdo_functions[] = {
+       PHP_FE(pdo_drivers,             NULL)
        {NULL, NULL, NULL}
 };
 /* }}} */