johannes Wed Feb 18 16:33:28 2009 UTC Added files: /php-src/ext/mysql/tests bug47438.phpt
Modified files: /php-src/ext/mysql php_mysql.c Log: Fix #47438 mysql_fetch_field ignores zero offse http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.272&r2=1.273&diff_format=u Index: php-src/ext/mysql/php_mysql.c diff -u php-src/ext/mysql/php_mysql.c:1.272 php-src/ext/mysql/php_mysql.c:1.273 --- php-src/ext/mysql/php_mysql.c:1.272 Wed Dec 31 11:12:32 2008 +++ php-src/ext/mysql/php_mysql.c Wed Feb 18 16:33:28 2009 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mysql.c,v 1.272 2008/12/31 11:12:32 sebastian Exp $ */ +/* $Id: php_mysql.c,v 1.273 2009/02/18 16:33:28 johannes Exp $ */ /* TODO: * @@ -2379,7 +2379,7 @@ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, &result, -1, "MySQL result", le_result); - if (field) { + if (ZEND_NUM_ARGS() > 1) { if (field<0 || field>=(int)mysql_num_fields(mysql_result)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad field offset"); RETURN_FALSE; http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/tests/bug47438.phpt?view=markup&rev=1.1 Index: php-src/ext/mysql/tests/bug47438.phpt +++ php-src/ext/mysql/tests/bug47438.phpt --TEST-- Bug #47438 mysql_fetch_field ignores zero offset --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifconnectfailure.inc'); ?> --FILE-- <?php require_once('connect.inc'); if (!$link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); mysql_connect("localhost", "root", ""); mysql_select_db("test"); mysql_query("DROP TABLE IF EXISTS test_47438"); mysql_query("CREATE TABLE test_47438 (a INT, b INT, c INT)"); mysql_query("INSERT INTO test_47438 VALUES (10, 11, 12), (20, 21, 22)"); $result = mysql_query("SELECT * FROM test_47438"); mysql_field_seek($result, 1); $i = 0; while($i<mysql_num_fields($result)) { $meta=mysql_fetch_field($result,$i); echo $i . "." . $meta->name . "\n"; $i++; } mysql_query("DROP TABLE IF EXISTS test_47438"); ?> --EXPECT-- 0.a 1.b 2.c -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php