iliaa Fri Feb 14 11:49:09 2003 EDT
Modified files:
/php4/ext/mysqli mysqli.c mysqli_api.c mysqli_nonapi.c php_mysqli.h
Log:
Missing portion of the previous patch.
Index: php4/ext/mysqli/mysqli.c
diff -u php4/ext/mysqli/mysqli.c:1.2 php4/ext/mysqli/mysqli.c:1.3
--- php4/ext/mysqli/mysqli.c:1.2 Fri Feb 14 11:31:22 2003
+++ php4/ext/mysqli/mysqli.c Fri Feb 14 11:49:09 2003
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli.c,v 1.2 2003/02/14 16:31:22 georg Exp $
+ $Id: mysqli.c,v 1.3 2003/02/14 16:49:09 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -27,6 +27,7 @@
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
+#include "ext/standard/php_string.h"
#include "php_mysqli.h"
@@ -38,16 +39,16 @@
static zend_object_handlers mysqli_object_handlers;
/* {{{ php_clear_stmt_bind */
-void php_clear_stmt_bind(STMT *stmt) {
- int i;
-
+void php_clear_stmt_bind(STMT *stmt)
+{
+ unsigned int i;
- if (stmt->stmt && stmt->stmt->mysql->host)
+ if (stmt->stmt && stmt->stmt->mysql->host) {
mysql_stmt_close(stmt->stmt);
+ }
if (stmt->var_cnt) {
-
- for (i=0; i < stmt->var_cnt; i++) {
+ for (i = 0; i < stmt->var_cnt; i++) {
if (stmt->type == FETCH_RESULT) {
if (stmt->bind[i].type == IS_STRING) {
efree(stmt->bind[i].buffer);
@@ -80,16 +81,12 @@
if (mysql) {
mysql_close(mysql);
}
- }
- /* stmt object */
- else if (intern->zo.ce == mysqli_stmt_class_entry) {
+ } else if (intern->zo.ce == mysqli_stmt_class_entry) { /* stmt object */
STMT *stmt = (STMT *)intern->ptr;
if (stmt) {
php_clear_stmt_bind(stmt);
}
- }
- /* result object */
- else if (intern->zo.ce == mysqli_result_class_entry) {
+ } else if (intern->zo.ce == mysqli_result_class_entry) { /* result object */
MYSQL_RES *res = (MYSQL_RES *)intern->ptr;
if (res) {
mysql_free_result(res);
@@ -300,6 +297,9 @@
*/
PHP_RINIT_FUNCTION(mysqli)
{
+ MyG(error_msg) = NULL;
+ MyG(error_no) = 0;
+
return SUCCESS;
}
/* }}} */
@@ -309,6 +309,10 @@
*/
PHP_RSHUTDOWN_FUNCTION(mysqli)
{
+ if (MyG(error_msg)) {
+ efree(MyG(error_msg));
+ }
+
return SUCCESS;
}
/* }}} */
@@ -335,7 +339,7 @@
{
MYSQL_RES *result;
zval *mysql_result;
- int fetchtype;
+ int fetchtype;
int copyflag, i;
MYSQL_FIELD *fields;
MYSQL_ROW row;
@@ -355,25 +359,22 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
- if (array_init(return_value) == FAILURE) {
- RETURN_FALSE;
- }
+ array_init(return_value);
fields = mysql_fetch_fields(result);
row = mysql_fetch_row(result);
field_len = mysql_fetch_lengths(result);
- for (i=0; i < mysql_num_fields(result); i++){
+ for (i = 0; i < mysql_num_fields(result); i++) {
if (row[i]) {
char *column;
- int column_len;
+ int column_len;
/* check if we need magic quotes */
if (PG(magic_quotes_runtime)) {
column = php_addslashes(row[i], field_len[i],
&column_len, 0 TSRMLS_CC);
copyflag = 0;
- }
- else {
+ } else {
column = row[i];
column_len = field_len[i];
copyflag = 1;
@@ -385,9 +386,7 @@
if (fetchtype & MYSQLI_ASSOC) {
add_assoc_stringl(return_value, fields[i].name,
column, column_len, copyflag);
}
-
- }
- else {
+ } else {
if (fetchtype & MYSQLI_NUM) {
add_index_null(return_value, i);
}
@@ -396,6 +395,18 @@
}
}
}
+}
+/* }}} */
+
+/* {{{ php_mysqli_set_error
+ */
+PHP_MYSQLI_API void php_mysqli_set_error(long mysql_errno, char *mysql_err TSRMLS_DC)
+{
+ MyG(error_no) = mysql_errno;
+ if (MyG(error_msg)) {
+ efree(MyG(error_msg));
+ }
+ MyG(error_msg) = estrdup(mysql_err);
}
/* }}} */
Index: php4/ext/mysqli/mysqli_api.c
diff -u php4/ext/mysqli/mysqli_api.c:1.5 php4/ext/mysqli/mysqli_api.c:1.6
--- php4/ext/mysqli/mysqli_api.c:1.5 Fri Feb 14 11:31:51 2003
+++ php4/ext/mysqli/mysqli_api.c Fri Feb 14 11:49:09 2003
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_api.c,v 1.5 2003/02/14 16:31:51 georg Exp $
+ $Id: mysqli_api.c,v 1.6 2003/02/14 16:49:09 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -72,9 +72,9 @@
zval ***args;
int argc = ZEND_NUM_ARGS();
int i;
- int num_vars;
- int start = 0;
- int ofs;
+ int num_vars;
+ int start = 0;
+ int ofs;
STMT *stmt;
MYSQL_BIND *bind;
zval **object;
@@ -82,10 +82,9 @@
/* check if number of parameters > 2 and odd */
if (argc < 3 || !(argc & 1)) {
WRONG_PARAM_COUNT;
+ } else {
+ num_vars = (argc - 1) / 2;
}
- else
- num_vars = (argc - 1) / 2;
-
args = (zval ***)emalloc(argc * sizeof(zval **));
@@ -163,6 +162,7 @@
}
if (mysql_bind_param(stmt->stmt, bind)) {
+ efree(args);
efree(bind);
RETURN_FALSE;
}
@@ -174,9 +174,9 @@
if (Z_LVAL_PP(args[i+1+start]) != MYSQLI_BIND_SEND_DATA) {
ZVAL_ADDREF(*args[i+start]);
stmt->vars[i/2] = *args[i+start];
- }
- else
+ } else {
stmt->vars[i/2] = NULL;
+ }
}
efree(args);
efree(bind);
@@ -198,9 +198,9 @@
int argc = ZEND_NUM_ARGS();
zval **object;
int i;
- int start = 0;
- int var_cnt;
- int ofs;
+ int start = 0;
+ int var_cnt;
+ int ofs;
long col_type;
STMT *stmt;
MYSQL_BIND *bind;
@@ -218,12 +218,12 @@
if (!getThis()) {
if (Z_TYPE_PP(args[0]) != IS_OBJECT) {
+ efree(args);
RETURN_FALSE;
}
MYSQLI_FETCH_RESOURCE(stmt, STMT *, args[0], "mysqli_stmt");
start = 1;
- }
- else {
+ } else {
object = &(getThis());
MYSQLI_FETCH_RESOURCE(stmt, STMT *, object, "mysqli_stmt");
}
@@ -314,7 +314,7 @@
efree(bind);
efree(args);
php_clear_stmt_bind(stmt);
- return;
+ RETURN_FALSE;
}
stmt->var_cnt = var_cnt;
@@ -339,7 +339,7 @@
MYSQL *mysql;
zval *mysql_link = NULL;
char *user, *password, *dbname;
- int user_len, password_len, dbname_len;
+ int user_len, password_len, dbname_len;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osss",
&mysql_link, mysqli_link_class_entry, &user, &user_len, &password, &password_len,
&dbname, &dbname_len) == FAILURE) {
return;
@@ -359,7 +359,7 @@
PHP_FUNCTION(mysqli_character_set_name)
{
MYSQL *mysql;
- zval *mysql_link;
+ zval *mysql_link;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
@@ -372,7 +372,8 @@
/* {{{ proto bool mysqli_close(resource link)
close connection */
-PHP_FUNCTION(mysqli_close){
+PHP_FUNCTION(mysqli_close)
+{
zval *mysql_link;
MYSQL *mysql;
@@ -418,11 +419,11 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "(%s:) Function cannot be
used with MYSQL_USE_RESULT");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used
+with MYSQL_USE_RESULT");
RETURN_LONG(0);
}
- mysql_data_seek (result, offset);
+ mysql_data_seek(result, offset);
return;
}
/* }}} */
@@ -445,7 +446,8 @@
/* {{{ proto void mysqli_disable_reads_from_master(resource link)
*/
-PHP_FUNCTION(mysqli_disable_reads_from_master) {
+PHP_FUNCTION(mysqli_disable_reads_from_master)
+{
MYSQL *mysql;
zval *mysql_link;
@@ -459,7 +461,8 @@
/* {{{ proto void mysqli_disable_rpl_parse(resource link)
*/
-PHP_FUNCTION(mysqli_disable_rpl_parse) {
+PHP_FUNCTION(mysqli_disable_rpl_parse)
+{
MYSQL *mysql;
zval *mysql_link;
@@ -492,7 +495,8 @@
/* {{{ proto void mysqli_enable_reads_from_master(resource link)
*/
-PHP_FUNCTION(mysqli_enable_reads_from_master) {
+PHP_FUNCTION(mysqli_enable_reads_from_master)
+{
MYSQL *mysql;
zval *mysql_link;
@@ -507,7 +511,8 @@
/* {{{ proto void mysqli_enable_rpl_parse(resource link)
*/
-PHP_FUNCTION(mysqli_enable_rpl_parse) {
+PHP_FUNCTION(mysqli_enable_rpl_parse)
+{
MYSQL *mysql;
zval *mysql_link;
@@ -525,7 +530,7 @@
PHP_FUNCTION(mysqli_errno)
{
MYSQL *mysql;
- zval *mysql_link;
+ zval *mysql_link;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
@@ -556,7 +561,7 @@
{
STMT *stmt;
zval *mysql_stmt;
- int i;
+ unsigned int i;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
@@ -564,7 +569,7 @@
MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt");
if (stmt->type == FETCH_SIMPLE) {
- for (i=0; i < stmt->var_cnt; i++) {
+ for (i = 0; i < stmt->var_cnt; i++) {
if (stmt->vars[i]) {
stmt->is_null[i] = (stmt->vars[i]->type == IS_NULL);
@@ -583,7 +588,7 @@
stmt->stmt->params[i].buffer =
(gptr)&Z_LVAL_PP(&stmt->vars[i]);
break;
default:
- break;
+ break;
}
}
}
@@ -599,7 +604,7 @@
{
STMT *stmt;
zval *mysql_stmt;
- int i;
+ unsigned int i;
ulong ret;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
@@ -610,19 +615,17 @@
/* reset buffers */
- for (i=0; i < stmt->var_cnt; i++) {
- if (stmt->bind[i].type == IS_STRING)
+ for (i = 0; i < stmt->var_cnt; i++) {
+ if (stmt->bind[i].type == IS_STRING) {
memset(stmt->bind[i].buffer, 0, stmt->bind[i].buflen);
+ }
}
- ret = mysql_fetch(stmt->stmt);
-
- if (ret) {
+ if (!(ret = mysql_fetch(stmt->stmt))) {
RETURN_FALSE;
}
- for (i=0; i < stmt->var_cnt; i++) {
-
+ for (i = 0; i < stmt->var_cnt; i++) {
if (!stmt->is_null[i]) {
switch (stmt->bind[i].type) {
case IS_LONG:
@@ -639,21 +642,20 @@
if (lval != (long)lval) {
sprintf((char *)&tmp, "%lld",
lval);
ZVAL_STRING(stmt->vars[i],
tmp, 1);
- }
- else
+ } else {
ZVAL_LONG(stmt->vars[i], lval);
- }
- else {
+ }
+ } else {
stmt->bind[i].type = IS_STRING;
ZVAL_STRING(stmt->vars[i],
stmt->bind[i].buffer, 1);
}
break;
default:
- break;
+ break;
}
- }
- else
+ } else {
stmt->vars[i]->type = IS_NULL;
+ }
}
RETURN_LONG(ret);
@@ -678,9 +680,7 @@
RETURN_FALSE;
}
- if (object_init(return_value) == FAILURE){
- RETURN_FALSE;
- }
+ object_init(return_value);
add_property_string(return_value, "name",(field->name ? field->name : ""), 1);
add_property_string(return_value, "orgname",(field->org_name ? field->org_name
: ""), 1);
@@ -703,7 +703,7 @@
MYSQL_FIELD *field;
zval *obj;
- int i;
+ unsigned int i;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_result, mysqli_result_class_entry) == FAILURE) {
return;
@@ -715,18 +715,14 @@
RETURN_FALSE;
}
- if (array_init(return_value) == FAILURE) {
- RETURN_FALSE;
- }
+ array_init(return_value);
- for (i=0; i < mysql_num_fields(result); i++) {
+ for (i = 0; i < mysql_num_fields(result); i++) {
field = mysql_fetch_field_direct(result, i);
MAKE_STD_ZVAL(obj);
- if (object_init(obj) == FAILURE){
- RETURN_FALSE;
- }
+ object_init(obj);
add_property_string(obj, "name",(field->name ? field->name : ""), 1);
add_property_string(obj, "orgname",(field->org_name ? field->org_name
: ""), 1);
@@ -762,9 +758,7 @@
RETURN_FALSE;
}
- if (object_init(return_value) == FAILURE){
- RETURN_FALSE;
- }
+ object_init(return_value);
add_property_string(return_value, "name",(field->name ? field->name : ""), 1);
add_property_string(return_value, "orgname",(field->org_name ? field->org_name
: ""), 1);
@@ -784,7 +778,7 @@
{
MYSQL_RES *result;
zval *mysql_result;
- int i;
+ unsigned int i;
unsigned long *ret;
@@ -794,17 +788,13 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
- ret = mysql_fetch_lengths(result);
-
- if (ret == NULL) {
+ if (!(ret = mysql_fetch_lengths(result))) {
RETURN_FALSE;
}
- if (array_init(return_value) == FAILURE) {
- RETURN_FALSE;
- }
+ array_init(return_value);
- for (i=0; i < mysql_num_fields(result); i++) {
+ for (i = 0; i < mysql_num_fields(result); i++) {
add_index_long(return_value, i, ret[i]);
}
}
@@ -840,7 +830,7 @@
{
MYSQL_RES *result;
zval *mysql_result;
- int fieldnr;
+ unsigned int fieldnr;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol",
&mysql_result, mysqli_result_class_entry, &fieldnr) == FAILURE) {
return;
@@ -848,7 +838,7 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
if (fieldnr < 0 || fieldnr >= mysql_num_fields(result)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "(%s:) Field offset is
invalid for resultset");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field offset is invalid
+for resultset");
RETURN_FALSE;
}
@@ -979,11 +969,10 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
- info = (char *)mysql_info(mysql);
-
- if (!info){
- return;
+ if (!(info = (char *)mysql_info(mysql))) {
+ RETURN_FALSE;
}
+
RETURN_STRING(info, 1);
}
/* }}} */
@@ -1015,9 +1004,9 @@
if (rc != (long)rc) {
sprintf((char *)&ret, "%lld", rc);
RETURN_STRING(ret,1);
- }
- else
+ } else {
RETURN_LONG(rc);
+ }
}
/* }}} */
@@ -1092,7 +1081,7 @@
MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "(%s:) Function cannot be
used with MYSQL_USE_RESULT");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used
+with MYSQL_USE_RESULT");
RETURN_LONG(0);
}
@@ -1119,25 +1108,26 @@
switch (Z_TYPE_PP(&mysql_value)) {
case IS_STRING:
ret = mysql_options(mysql, mysql_option,
Z_STRVAL_PP(&mysql_value));
- break;
+ break;
default:
convert_to_long_ex(&mysql_value);
l_value = Z_LVAL_PP(&mysql_value);
ret = mysql_options(mysql, mysql_option, (char *)&l_value);
- break;
+ break;
}
if (ret != 0) {
- RETVAL_FALSE;
+ RETURN_FALSE;
} else {
- RETVAL_TRUE;
+ RETURN_TRUE;
}
}
/* }}} */
/* {{{ proto int mysqli_param_count(resource stmt) {
return the number of parameter for the given statement */
-PHP_FUNCTION(mysqli_param_count) {
+PHP_FUNCTION(mysqli_param_count)
+{
STMT *stmt;
zval *mysql_stmt;
@@ -1210,27 +1200,30 @@
}
MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt");
- result = mysql_prepare_result(stmt->stmt);
-
- if (!result) {
+ if (!(result = mysql_prepare_result(stmt->stmt))){
RETURN_FALSE;
}
+
MYSQLI_RETURN_RESOURCE(result, mysqli_result_class_entry);
}
/* }}} */
/* {{{ proto bool mysqli_read_query_result(resource link)
*/
-PHP_FUNCTION(mysqli_read_query_result) {
+PHP_FUNCTION(mysqli_read_query_result)
+{
MYSQL *mysql;
zval *mysql_link;
+
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 *, &mysql_link, "mysqli_link");
- if (mysql_read_query_result(mysql))
+ if (mysql_read_query_result(mysql)) {
RETURN_FALSE;
+ }
+
RETURN_TRUE;
}
/* }}} */
@@ -1256,7 +1249,7 @@
}
/* TODO: safe mode handling */
- if (PG(sql_safe_mode)){
+ if (PG(sql_safe_mode)) {
} else {
if (!passwd) {
passwd = MyG(default_pw);
@@ -1273,8 +1266,7 @@
if
(mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
/* Save error messages */
- MyG(error_no) = mysql_errno(mysql);
- MyG(error_msg) = estrdup(mysql_error(mysql));
+ php_mysqli_set_error(mysql_errno(mysql), mysql_error(mysql) TSRMLS_CC);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", mysql_error(mysql));
RETURN_FALSE;
@@ -1309,7 +1301,7 @@
MYSQL *mysql;
zval *mysql_link = NULL;
char *escapestr, *newstr;
- int escapestr_len, newstr_len;
+ int escapestr_len, newstr_len;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",
&mysql_link, mysqli_link_class_entry, &escapestr, &escapestr_len) == FAILURE) {
return;
@@ -1383,8 +1375,9 @@
MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
- if (mysql_rpl_probe(mysql))
+ if (mysql_rpl_probe(mysql)) {
RETURN_FALSE;
+ }
RETURN_TRUE;
}
/* }}} */
@@ -1487,9 +1480,7 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
- result = mysql_store_result(mysql);
-
- if (!result) {
+ if (!(result = mysql_store_result(mysql))) {
RETURN_FALSE;
}
MYSQLI_RETURN_RESOURCE(result, mysqli_result_class_entry);
@@ -1562,7 +1553,7 @@
*/
PHP_FUNCTION(mysqli_stat)
{
- MYSQL *mysql;
+ MYSQL *mysql;
zval *mysql_link;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_link, mysqli_link_class_entry) == FAILURE) {
@@ -1580,7 +1571,7 @@
PHP_FUNCTION(mysqli_stmt_errno)
{
STMT *stmt;
- zval *mysql_stmt;
+ zval *mysql_stmt;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
@@ -1596,7 +1587,7 @@
PHP_FUNCTION(mysqli_stmt_error)
{
STMT *stmt;
- zval *mysql_stmt;
+ zval *mysql_stmt;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
&mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
@@ -1645,9 +1636,7 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
- result = mysql_use_result(mysql);
-
- if (!result) {
+ if (!(result = mysql_use_result(mysql))) {
RETURN_FALSE;
}
MYSQLI_RETURN_RESOURCE(result, mysqli_result_class_entry);
Index: php4/ext/mysqli/mysqli_nonapi.c
diff -u php4/ext/mysqli/mysqli_nonapi.c:1.1 php4/ext/mysqli/mysqli_nonapi.c:1.2
--- php4/ext/mysqli/mysqli_nonapi.c:1.1 Tue Feb 11 19:45:53 2003
+++ php4/ext/mysqli/mysqli_nonapi.c Fri Feb 14 11:49:09 2003
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_nonapi.c,v 1.1 2003/02/12 00:45:53 georg Exp $
+ $Id: mysqli_nonapi.c,v 1.2 2003/02/14 16:49:09 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -60,8 +60,8 @@
if (mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,0) ==
NULL) {
/* Save error messages */
- MyG(error_no) = mysql_errno(mysql);
- MyG(error_msg) = estrdup(mysql_error(mysql));
+ php_mysqli_set_error(mysql_errno(mysql), mysql_error(mysql) TSRMLS_CC);
+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", mysql_error(mysql));
/* free mysql structure */
mysql_close(mysql);
Index: php4/ext/mysqli/php_mysqli.h
diff -u php4/ext/mysqli/php_mysqli.h:1.4 php4/ext/mysqli/php_mysqli.h:1.5
--- php4/ext/mysqli/php_mysqli.h:1.4 Fri Feb 14 11:45:31 2003
+++ php4/ext/mysqli/php_mysqli.h Fri Feb 14 11:49:09 2003
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: php_mysqli.h,v 1.4 2003/02/14 16:45:31 iliaa Exp $
+ $Id: php_mysqli.h,v 1.5 2003/02/14 16:49:09 iliaa Exp $
*/
#include <mysql.h>
@@ -102,11 +102,10 @@
#define MYSQLI_FETCH_RESOURCE(__ptr, __type, __id, __name) \
{ \
mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id)
TSRMLS_CC);\
- if (!((__ptr) != (__type)intern->ptr)) {\
- php_error(E_WARNING, "Couldn't fetch %s", intern->zo.ce->name);\
- RETURN_NULL();\
- }\
- __ptr = (__type)intern->ptr; \
+ if (!(__ptr = (__type)intern->ptr)) {\
+ php_error(E_WARNING, "Couldn't fetch %s", intern->zo.ce->name);\
+ RETURN_NULL();\
+ }\
}
#define MYSQLI_CLEAR_RESOURCE(__id) \
@@ -136,6 +135,7 @@
PHP_MYSQLI_API void mysqli_register_link(zval *return_value, void *link TSRMLS_DC);
PHP_MYSQLI_API void mysqli_register_stmt(zval *return_value, void *stmt TSRMLS_DC);
PHP_MYSQLI_API void mysqli_register_result(zval *return_value, void *result
TSRMLS_DC);
+PHP_MYSQLI_API void php_mysqli_set_error(long mysql_errno, char *mysql_err TSRMLS_DC);
PHP_MINIT_FUNCTION(mysqli);
PHP_MSHUTDOWN_FUNCTION(mysqli);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php