1
0
mirror of https://github.com/php/php-src.git synced 2026-03-27 09:42:22 +01:00

MFH: Fix #47438 mysql_fetch_field ignores zero offse

This commit is contained in:
Johannes Schlüter
2009-02-18 16:34:47 +00:00
parent 42bb8ed2b5
commit b489d3a69f
3 changed files with 41 additions and 1 deletions

1
NEWS
View File

@@ -3,6 +3,7 @@ PHP NEWS
?? ??? 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

View File

@@ -2318,7 +2318,7 @@ PHP_FUNCTION(mysql_fetch_field)
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;

View File

@@ -0,0 +1,39 @@
--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