summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli_nonapi.c
diff options
context:
space:
mode:
authorGeorg Richter <georg@php.net>2003-12-13 00:28:21 +0000
committerGeorg Richter <georg@php.net>2003-12-13 00:28:21 +0000
commit8b3b1c192b30d64af8bd498bf55e88277826c229 (patch)
tree5463218065bbcc2eb255f31c6207e781e8cccf28 /ext/mysqli/mysqli_nonapi.c
parentb1f8236b63ae9ee1f3cec490f093cbb8cfff407f (diff)
downloadphp-git-8b3b1c192b30d64af8bd498bf55e88277826c229.tar.gz
removed profiler
added mysqli_report - better support for errors - support for no_index_used and bad_index_used typos and prototype fixes
Diffstat (limited to 'ext/mysqli/mysqli_nonapi.c')
-rw-r--r--ext/mysqli/mysqli_nonapi.c88
1 files changed, 18 insertions, 70 deletions
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index 44d7e5011f..20f7718318 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -35,12 +35,10 @@ PHP_FUNCTION(mysqli_connect)
{
MYSQL *mysql;
MYSQLI_RESOURCE *mysqli_resource;
- PR_MYSQL *prmysql = NULL;
zval *object = getThis();
char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL;
unsigned int hostname_len, username_len, passwd_len, dbname_len, socket_len;
unsigned int port=0;
- struct timeval starttime;
if (getThis() && !ZEND_NUM_ARGS()) {
RETURN_NULL();
@@ -63,38 +61,29 @@ PHP_FUNCTION(mysqli_connect)
}
}
}
- }
- mysql = mysql_init(NULL);
-
- if (MyG(profiler)){
- gettimeofday(&starttime, NULL);
}
+ mysql = mysql_init(NULL);
+
if (mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,0) == NULL) {
/* Save error messages */
+ MYSQLI_REPORT_MYSQL_ERROR(mysql);
php_mysqli_set_error(mysql_errno(mysql), (char *) mysql_error(mysql) TSRMLS_CC);
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", mysql_error(mysql));
+ if (!(MyG(report_mode) & MYSQLI_REPORT_ERROR)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", mysql_error(mysql));
+ }
/* free mysql structure */
mysql_close(mysql);
RETURN_FALSE;
}
- php_mysqli_set_error(mysql_errno(mysql), (char *) mysql_error(mysql) TSRMLS_CC);
- if (MyG(profiler)) {
- prmysql = (PR_MYSQL *)MYSQLI_PROFILER_NEW(prmain, MYSQLI_PR_MYSQL, 0);
- php_mysqli_profiler_timediff(starttime, &prmysql->header.elapsedtime);
- MYSQLI_PROFILER_STARTTIME(prmysql);
- prmysql->hostname = estrdup(hostname);
- prmysql->username = estrdup(username);
- prmysql->thread_id = mysql->thread_id;
- }
+ /* clear error */
+ php_mysqli_set_error(mysql_errno(mysql), (char *) mysql_error(mysql) TSRMLS_CC);
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)mysql;
- mysqli_resource->prinfo = prmysql;
-
if (!object) {
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);
@@ -111,7 +100,6 @@ PHP_FUNCTION(mysqli_embedded_connect)
{
MYSQL *mysql;
MYSQLI_RESOURCE *mysqli_resource;
- PR_MYSQL *prmysql = NULL;
zval *object = getThis();
char *dbname = NULL;
int dblen = 0;
@@ -126,10 +114,6 @@ PHP_FUNCTION(mysqli_embedded_connect)
return;
}
- if (MyG(profiler)){
- gettimeofday(&starttime, NULL);
- }
-
mysql = mysql_init(NULL);
if (mysql_real_connect(mysql, NULL, NULL, NULL, dbname, 0, NULL, 0) == NULL) {
@@ -142,14 +126,6 @@ PHP_FUNCTION(mysqli_embedded_connect)
php_mysqli_set_error(mysql_errno(mysql), (char *) mysql_error(mysql) TSRMLS_CC);
- if (MyG(profiler)) {
- prmysql = (PR_MYSQL *)MYSQLI_PROFILER_NEW(prmain, MYSQLI_PR_MYSQL, 0);
- php_mysqli_profiler_timediff(starttime, &prmysql->header.elapsedtime);
- MYSQLI_PROFILER_STARTTIME(prmysql);
- prmysql->hostname = prmysql->username = NULL;
- prmysql->thread_id = mysql->thread_id;
- }
-
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)mysql;
mysqli_resource->prinfo = prmysql;
@@ -215,12 +191,11 @@ PHP_FUNCTION(mysqli_multi_query)
zval *mysql_link;
char *query = NULL;
unsigned int query_len;
- PR_MYSQL *prmysql;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
MYSQLI_ENABLE_MQ;
if (mysql_real_query(mysql, query, query_len)) {
@@ -238,69 +213,42 @@ PHP_FUNCTION(mysqli_query)
zval *mysql_link;
MYSQLI_RESOURCE *mysqli_resource;
MYSQL_RES *result;
- PR_MYSQL *prmysql;
- PR_QUERY *prquery;
- PR_RESULT *prresult;
char *query = NULL;
unsigned int query_len;
unsigned int resultmode = 0;
- struct timeval starttime;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|l", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL*, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
-
- /* profiling information */
- if (MyG(profiler)) {
- prquery = (PR_QUERY *)MYSQLI_PROFILER_NEW(prmysql, MYSQLI_PR_QUERY, 1);
- prquery->explain.query = my_estrdup(query);
- if (!strncasecmp("select", query, 6)){
- if (!(MYSQLI_PROFILER_EXPLAIN(&prquery->explain, &prquery->header, mysql, query))) {
- RETURN_FALSE;
- }
- }
- }
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL*, &mysql_link, "mysqli_link");
MYSQLI_DISABLE_MQ;
if (mysql_real_query(mysql, query, query_len)) {
+ MYSQLI_REPORT_MYSQL_ERROR(mysql);
RETURN_FALSE;
}
- if (MyG(profiler)) {
- MYSQLI_PROFILER_ELAPSEDTIME(prquery);
- prquery->insertid = mysql_insert_id(mysql);
- prquery->affectedrows = mysql_affected_rows(mysql);
- }
if (!mysql_field_count(mysql)) {
+ if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {
+ php_mysqli_report_index(query, mysql->server_status);
+ }
RETURN_TRUE;
}
- /* profiler result information */
- if (MyG(profiler)) {
- gettimeofday(&starttime, NULL);
- prresult = (PR_RESULT *)MYSQLI_PROFILER_NEW(prquery, MYSQLI_PR_RESULT, 1);
- } else {
- prresult = NULL;
- }
-
result = (resultmode == MYSQLI_USE_RESULT) ? mysql_use_result(mysql) : mysql_store_result(mysql);
- if (result && MyG(profiler)) {
- MYSQLI_PROFILER_ELAPSEDTIME(prresult);
- prresult->rows = result->row_count;
- prresult->columns = result->field_count;
- }
-
if (!result) {
RETURN_FALSE;
}
+ if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {
+ php_mysqli_report_index(query, mysql->server_status);
+ }
+
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
- mysqli_resource->prinfo = (void *)prresult;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
}
/* }}} */