johannes                Wed Feb 18 16:34:48 2009 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/mysql/tests    bug47438.phpt 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/mysql  php_mysql.c 
  Log:
  MFH: Fix #47438 mysql_fetch_field ignores zero offse
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.501&r2=1.2027.2.547.2.965.2.502&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.501 
php-src/NEWS:1.2027.2.547.2.965.2.502
--- php-src/NEWS:1.2027.2.547.2.965.2.501       Wed Feb 18 12:55:34 2009
+++ php-src/NEWS        Wed Feb 18 16:34:47 2009
@@ -3,6 +3,7 @@
 ?? ??? 2009, PHP 5.3.0 Beta 2
 - Upgraded bundled sqlite to version 3.6.11. (Scott)
 
+- Fixed bug #47438 (mysql_fetch_field ignores zero offset). (Johannes)
 - Fixed bug #47398 (PDO_Firebird doesn't implements quoter correctly). (Felipe)
 - Fixed bug #47390 (odbc_fetch_into - BC in php 5.3.0). (Felipe)
 - Fixed bug #47343 (gc_collect_cycles causes a segfault when called within a
http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.213.2.6.2.16.2.34&r2=1.213.2.6.2.16.2.35&diff_format=u
Index: php-src/ext/mysql/php_mysql.c
diff -u php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.34 
php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.35
--- php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.34   Wed Dec 31 11:15:38 2008
+++ php-src/ext/mysql/php_mysql.c       Wed Feb 18 16:34:47 2009
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
  
-/* $Id: php_mysql.c,v 1.213.2.6.2.16.2.34 2008/12/31 11:15:38 sebastian Exp $ 
*/
+/* $Id: php_mysql.c,v 1.213.2.6.2.16.2.35 2009/02/18 16:34:47 johannes Exp $ */
 
 /* TODO:
  *
@@ -2318,7 +2318,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

Reply via email to