FAQ
andrey Tue Apr 19 09:42:31 2005 EDT

Added files: (Branch: PHP_5_0)
/php-src/ext/mysqli/tests bug32405.phpt

Modified files:
/php-src/ext/mysqli mysqli_api.c
Log:
MFH


http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_api.c?r1=1.87.2.12&r2=1.87.2.13&ty=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.87.2.12 php-src/ext/mysqli/mysqli_api.c:1.87.2.13
--- php-src/ext/mysqli/mysqli_api.c:1.87.2.12 Thu Mar 17 13:12:30 2005
+++ php-src/ext/mysqli/mysqli_api.c Tue Apr 19 09:42:29 2005
@@ -15,7 +15,7 @@
Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+

- $Id: mysqli_api.c,v 1.87.2.12 2005/03/17 18:12:30 tony2001 Exp $
+ $Id: mysqli_api.c,v 1.87.2.13 2005/04/19 13:42:29 andrey Exp $
*/

#ifdef HAVE_CONFIG_H
@@ -311,6 +311,9 @@
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_TIMESTAMP:
case MYSQL_TYPE_DECIMAL:
+#ifdef FIELD_TYPE_NEWDECIMAL
+ case MYSQL_TYPE_NEWDECIMAL:
+#endif
stmt->result.buf[ofs].type = IS_STRING;
stmt->result.buf[ofs].buflen =
(stmt->stmt->fields) ? (stmt->stmt->fields[ofs].length) ? stmt->stmt->fields[ofs].length + 1: 256: 256;
@@ -585,7 +588,7 @@
zval *mysql_stmt;
unsigned int i;
ulong ret;
- long lval;
+ int lval;
double dval;
my_ulonglong llval;

@@ -611,11 +614,11 @@
if (!stmt->result.is_null[i]) {
switch (stmt->result.buf[i].type) {
case IS_LONG:
- memcpy(&lval, stmt->result.buf[i].val, sizeof(long));
+ memcpy(&lval, stmt->result.buf[i].val, sizeof(lval));
ZVAL_LONG(stmt->result.vars[i], lval);
break;
case IS_DOUBLE:
- memcpy(&dval, stmt->result.buf[i].val, sizeof(double));
+ memcpy(&dval, stmt->result.buf[i].val, sizeof(dval));
ZVAL_DOUBLE(stmt->result.vars[i], dval);
break;
case IS_STRING:
@@ -749,7 +752,7 @@
MYSQL_RES *result;
zval *mysql_result;
MYSQL_FIELD *field;
- int offset;
+ long offset;

if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &offset) == FAILURE) {
return;
@@ -839,7 +842,7 @@
{
MYSQL_RES *result;
zval *mysql_result;
- unsigned int fieldnr;
+ unsigned long fieldnr;

if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &fieldnr) == FAILURE) {
return;
@@ -1029,7 +1032,7 @@
{
MY_MYSQL *mysql;
zval *mysql_link;
- int processid;
+ unsigned long processid;

if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_link, mysqli_link_class_entry, &processid) == FAILURE) {
return;
@@ -1277,7 +1280,7 @@
MY_MYSQL *mysql;
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, flags=0;
+ unsigned long port=0, flags=0;
zval *mysql_link;
zval *object = getThis();

@@ -1416,7 +1419,8 @@
MY_STMT *stmt;
zval *mysql_stmt;
char *data;
- long param_nr, data_len;
+ long param_nr;
+ int data_len;


if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ols", &mysql_stmt, mysqli_stmt_class_entry, &param_nr, &data, &data_len) == FAILURE) {
@@ -1521,6 +1525,9 @@
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_stmt, mysqli_stmt_class_entry, &offset) == FAILURE) {
return;
}
+ if (offset < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset must be positive");
+ }

MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");


http://cvs.php.net/co.php/php-src/ext/mysqli/tests/bug32405.phpt?r=1.1&p=1
Index: php-src/ext/mysqli/tests/bug32405.phpt
+++ php-src/ext/mysqli/tests/bug32405.phpt
--TEST--
Bug #32405
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
include ("connect.inc");

/*** test mysqli_connect 127.0.0.1 ***/
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");

/* two fields are needed. the problem does not occur with 1 field only selected. */
$link->query("CREATE TABLE test_users(user_id int(10) unsigned NOT NULL auto_increment, login varchar(50) default '', PRIMARY KEY (user_id))");
$link->query('INSERT INTO test_users VALUES (NULL, "user1"), (NULL, "user2"), (NULL, "user3"), (NULL, "user4")');


if ($stmt = $link->prepare("SELECT SQL_NO_CACHE user_id, login FROM test_users")) {
$stmt->execute();
$stmt->bind_result($col1, $col2);
while ($stmt->fetch()) {
var_dump($col1, $col2);
}
$stmt->close();
}

mysqli_query($link,"DROP TABLE test_users");
mysqli_close($link);
?>
--EXPECT--
int(1)
string(5) "user1"
int(2)
string(5) "user2"
int(3)
string(5) "user3"
int(4)
string(5) "user4"

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-cvs @
categoriesphp
postedApr 19, '05 at 1:42p
activeApr 19, '05 at 1:42p
posts1
users1
websitephp.net

1 user in discussion

Andrey Hristov: 1 post

People

Translate

site design / logo © 2019 Grokbase