georg Fri Feb 14 13:17:25 2003 EDT
Modified files:
/php4/ext/mysqli mysqli_api.c
Log:
fixed a bug in mysqli_fetch
removed c++ comment (thx to Jani :)
fixed compiler warning
Index: php4/ext/mysqli/mysqli_api.c
diff -u php4/ext/mysqli/mysqli_api.c:1.6 php4/ext/mysqli/mysqli_api.c:1.7
--- php4/ext/mysqli/mysqli_api.c:1.6 Fri Feb 14 11:49:09 2003
+++ php4/ext/mysqli/mysqli_api.c Fri Feb 14 13:17:25 2003
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_api.c,v 1.6 2003/02/14 16:49:09 iliaa Exp $
+ $Id: mysqli_api.c,v 1.7 2003/02/14 18:17:25 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -282,6 +282,8 @@
case MYSQL_TYPE_LONGLONG:
stmt->bind[ofs].type = IS_STRING;
+
+ /* TODO: change and check buflen when bug #74 is fixed
+*/
stmt->bind[ofs].buflen = sizeof(my_ulonglong);
stmt->bind[ofs].buffer = (char
*)emalloc(stmt->bind[ofs].buflen);
bind[ofs].buffer_type = MYSQL_TYPE_LONGLONG;
@@ -298,7 +300,7 @@
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_TIMESTAMP:
stmt->bind[ofs].type = IS_STRING;
- stmt->bind[ofs].buflen = (stmt->stmt->fields) ?
stmt->stmt->fields[ofs].length + 1: 250;
+ stmt->bind[ofs].buflen = (stmt->stmt->fields) ?
+stmt->stmt->fields[ofs].length + 1: 256;
stmt->bind[ofs].buffer = (char
*)emalloc(stmt->bind[ofs].buflen);
bind[ofs].buffer_type = MYSQL_TYPE_STRING;
bind[ofs].buffer = stmt->bind[ofs].buffer;
@@ -307,7 +309,6 @@
bind[ofs].length = &stmt->bind[ofs].buflen;
break;
}
-// bind[ofs].length = &stmt->bind[ofs].buflen;
}
if (mysql_bind_result(stmt->stmt, bind)) {
@@ -598,7 +599,7 @@
}
/* }}} */
-/* {{{ proto bool mysqli_fetch(resource stmt)
+/* {{{ proto int mysqli_fetch(resource stmt)
*/
PHP_FUNCTION(mysqli_fetch)
{
@@ -622,39 +623,38 @@
}
if (!(ret = mysql_fetch(stmt->stmt))) {
- RETURN_FALSE;
- }
- for (i = 0; i < stmt->var_cnt; i++) {
- if (!stmt->is_null[i]) {
- switch (stmt->bind[i].type) {
- case IS_LONG:
- stmt->vars[i]->type = IS_LONG;
- break;
- case IS_DOUBLE:
- stmt->vars[i]->type = IS_DOUBLE;
- break;
- case IS_STRING:
- if (stmt->stmt->bind[i].buffer_type ==
MYSQL_TYPE_LONGLONG) {
- char tmp[50];
- my_ulonglong lval;
- memcpy (&lval, stmt->bind[i].buffer,
sizeof(my_ulonglong));
- if (lval != (long)lval) {
- sprintf((char *)&tmp, "%lld",
lval);
- ZVAL_STRING(stmt->vars[i],
tmp, 1);
+ for (i = 0; i < stmt->var_cnt; i++) {
+ if (!stmt->is_null[i]) {
+ switch (stmt->bind[i].type) {
+ case IS_LONG:
+ stmt->vars[i]->type = IS_LONG;
+ break;
+ case IS_DOUBLE:
+ stmt->vars[i]->type = IS_DOUBLE;
+ break;
+ case IS_STRING:
+ if (stmt->stmt->bind[i].buffer_type ==
+MYSQL_TYPE_LONGLONG) {
+ char tmp[50];
+ my_ulonglong lval;
+ memcpy (&lval,
+stmt->bind[i].buffer, sizeof(my_ulonglong));
+ if (lval != (long)lval) {
+ sprintf((char *)&tmp,
+"%lld", lval);
+
+ZVAL_STRING(stmt->vars[i], tmp, 1);
+ } else {
+
+ZVAL_LONG(stmt->vars[i], lval);
+ }
} else {
- ZVAL_LONG(stmt->vars[i], lval);
+ stmt->bind[i].type = IS_STRING;
+ ZVAL_STRING(stmt->vars[i],
+stmt->bind[i].buffer, 1);
}
- } else {
- stmt->bind[i].type = IS_STRING;
- ZVAL_STRING(stmt->vars[i],
stmt->bind[i].buffer, 1);
- }
- break;
- default:
- break;
+ break;
+ default:
+ break;
+ }
+ } else {
+ stmt->vars[i]->type = IS_NULL;
}
- } else {
- stmt->vars[i]->type = IS_NULL;
}
}
@@ -1266,7 +1266,7 @@
if
(mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
/* Save error messages */
- php_mysqli_set_error(mysql_errno(mysql), mysql_error(mysql) TSRMLS_CC);
+ 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));
RETURN_FALSE;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php