From 4554dc4a3706aa7d54537d815a9bdac61d70fed5 Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Sat, 21 Jun 2003 13:35:26 +0000 Subject: [PATCH] new functions (4.1.1): mysql_sqlstate, mysql_stmt_sqlstate --- ext/mysqli/mysqli_api.c | 37 +++++++++++++++++++++++++++++++++++++ ext/mysqli/mysqli_fe.c | 13 +++++++++++++ ext/mysqli/php_mysqli.h | 6 ++++++ 3 files changed, 56 insertions(+) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 52b2d609d4..1514de3aed 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1725,6 +1725,24 @@ PHP_FUNCTION(mysqli_select_db) } /* }}} */ +/* {{{ proto string mysqli_sqlstate(resource link) + Returns the SQLSTATE error from previous MySQL operation */ +#if MYSQL_VERSION_ID >= 40101 +PHP_FUNCTION(mysqli_sqlstate) +{ + MYSQL *mysql; + zval *mysql_link; + PR_MYSQL *prmysql; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link"); + RETURN_STRING((char *)mysql_sqlstate(mysql),1); +} +#endif +/* }}} */ + /* {{{ proto string mysqli_ssl_set(resource link [,string key [,string cert [,string ca [,string capath [,string cipher]]]]]) */ PHP_FUNCTION(mysqli_ssl_set) @@ -1819,6 +1837,25 @@ PHP_FUNCTION(mysqli_stmt_store_result) } /* }}} */ +/* {{{ proto string mysqli_stmt_error(resource stmt) +*/ +#if MYSQL_VERSION_ID >= 40101 +PHP_FUNCTION(mysqli_stmt_sqlstate) +{ + STMT *stmt; + zval *mysql_stmt; + PR_STMT *prstmt; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); + + RETURN_STRING((char *)mysql_stmt_sqlstate(stmt->stmt),1); +} +#endif +/* }}} */ + /* {{{ proto resource mysqli_store_result(resource link) Buffer result set on client */ PHP_FUNCTION(mysqli_store_result) diff --git a/ext/mysqli/mysqli_fe.c b/ext/mysqli/mysqli_fe.c index 4618f939f1..fd45d77c20 100644 --- a/ext/mysqli/mysqli_fe.c +++ b/ext/mysqli/mysqli_fe.c @@ -104,12 +104,19 @@ function_entry mysqli_functions[] = { PHP_FE(mysqli_send_query, NULL) PHP_FALIAS(mysqli_set_opt, mysqli_options, NULL) PHP_FE(mysqli_slave_query, NULL) + +#if MYSQL_VERSION_ID >= 40101 + PHP_FE(mysqli_sqlstate, NULL) +#endif PHP_FE(mysqli_ssl_set, NULL) PHP_FE(mysqli_stat, NULL) PHP_FE(mysqli_stmt_affected_rows, NULL) PHP_FE(mysqli_stmt_close, NULL) PHP_FE(mysqli_stmt_errno, NULL) PHP_FE(mysqli_stmt_error, NULL) +#if MYSQL_VERSION_ID >= 40101 + PHP_FE(mysqli_stmt_sqlstate, NULL) +#endif PHP_FE(mysqli_store_result, NULL) PHP_FE(mysqli_stmt_store_result, NULL) PHP_FE(mysqli_thread_id, NULL) @@ -168,6 +175,9 @@ function_entry mysqli_link_methods[] = { PHP_FALIAS(select_db,mysqli_select_db,NULL) PHP_FALIAS(set_opt, mysqli_options,NULL) PHP_FALIAS(slave_query,mysqli_slave_query,NULL) +#if MYSQL_VERSION_ID >= 40101 + PHP_FALIAS(sqlstate, mysqli_sqlstate,NULL) +#endif PHP_FALIAS(ssl_set,mysqli_ssl_set,NULL) PHP_FALIAS(stat,mysqli_stat,NULL) PHP_FALIAS(store_result,mysqli_store_result,NULL) @@ -221,6 +231,9 @@ function_entry mysqli_stmt_methods[] = { PHP_FALIAS(close,mysqli_stmt_close,NULL) PHP_FALIAS(errno,mysqli_stmt_errno,NULL) PHP_FALIAS(error,mysqli_stmt_error,NULL) +#if MYSQL_VERSION_ID >= 40101 + PHP_FALIAS(sqlstate, mysqli_stmt_sqlstate,NULL) +#endif {NULL, NULL, NULL} }; /* }}} */ diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h index 06d17487de..b43d2d3a0a 100644 --- a/ext/mysqli/php_mysqli.h +++ b/ext/mysqli/php_mysqli.h @@ -254,12 +254,18 @@ PHP_FUNCTION(mysqli_select_db); PHP_FUNCTION(mysqli_send_long_data); PHP_FUNCTION(mysqli_send_query); PHP_FUNCTION(mysqli_slave_query); +#if MYSQL_VERSION_ID >= 40101 +PHP_FUNCTION(mysqli_sqlstate); +#endif PHP_FUNCTION(mysqli_ssl_set); PHP_FUNCTION(mysqli_stat); PHP_FUNCTION(mysqli_stmt_affected_rows); PHP_FUNCTION(mysqli_stmt_close); PHP_FUNCTION(mysqli_stmt_errno); PHP_FUNCTION(mysqli_stmt_error); +#if MYSQL_VERSION_ID >= 40101 +PHP_FUNCTION(mysqli_stmt_sqlstate); +#endif PHP_FUNCTION(mysqli_stmt_store_result); PHP_FUNCTION(mysqli_store_result); PHP_FUNCTION(mysqli_thread_id); -- 2.50.1