Back to index

php5  5.3.10
Functions
mysqli_report.c File Reference
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_mysqli_structs.h"

Go to the source code of this file.

Functions

void php_mysqli_throw_sql_exception (char *sqlstate, int errorno TSRMLS_DC, char *format,...)
 PHP_FUNCTION (mysqli_report)
void php_mysqli_report_error (const char *sqlstate, int errorno, const char *error TSRMLS_DC)
void php_mysqli_report_index (const char *query, unsigned int status TSRMLS_DC)

Function Documentation

PHP_FUNCTION ( mysqli_report  )

Definition at line 34 of file mysqli_report.c.

{
       long flags;


       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flags) == FAILURE) {
              return;
       }

       MyG(report_mode) = flags;

       RETURN_TRUE;
}

Here is the call graph for this function:

void php_mysqli_report_error ( const char *  sqlstate,
int  errorno,
const char *error  TSRMLS_DC 
)

Definition at line 50 of file mysqli_report.c.

Here is the call graph for this function:

void php_mysqli_report_index ( const char *  query,
unsigned int status  TSRMLS_DC 
)

Definition at line 57 of file mysqli_report.c.

                                                                               {
       char index[15];

       if (status & SERVER_QUERY_NO_GOOD_INDEX_USED) {
              strcpy(index, "Bad index");
       } else if (status & SERVER_QUERY_NO_INDEX_USED) {
              strcpy(index, "No index");
       } else {
              return;
       }
       php_mysqli_throw_sql_exception("00000", 0 TSRMLS_CC, "%s used in query/prepared statement %s", index, query);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void php_mysqli_throw_sql_exception ( char *  sqlstate,
int errorno  TSRMLS_DC,
char *  format,
  ... 
)

Definition at line 39 of file mysqli_exception.c.

{
       zval   *sql_ex;
       va_list arg;
       char   *message;

       va_start(arg, format);
       vspprintf(&message, 0, format, arg);
       va_end(arg);;

       if (!(MyG(report_mode) & MYSQLI_REPORT_STRICT)) {
              php_error_docref(NULL TSRMLS_CC, E_WARNING, "(%s/%d): %s", sqlstate, errorno, message);
              efree(message);
              return;
       }

       MAKE_STD_ZVAL(sql_ex);
       object_init_ex(sql_ex, mysqli_exception_class_entry);

       if (message) {
              zend_update_property_string(mysqli_exception_class_entry, sql_ex, "message", sizeof("message") - 1,
                                                               message TSRMLS_CC);
       }

       if (sqlstate) {
              zend_update_property_string(mysqli_exception_class_entry, sql_ex, "sqlstate", sizeof("sqlstate") - 1,
                                                               sqlstate TSRMLS_CC);
       } else {
              zend_update_property_string(mysqli_exception_class_entry, sql_ex, "sqlstate", sizeof("sqlstate") - 1,
                                                               "00000" TSRMLS_CC);
       }

       efree(message);
       zend_update_property_long(mysqli_exception_class_entry, sql_ex, "code", sizeof("code") - 1, errorno TSRMLS_CC);

       zend_throw_exception_object(sql_ex TSRMLS_CC);
}

Here is the call graph for this function:

Here is the caller graph for this function: