mirror of
https://github.com/php/php-src.git
synced 2024-12-05 07:46:06 +08:00
Fix #47438 mysql_fetch_field ignores zero offse
This commit is contained in:
parent
51b4f3426e
commit
ea84127c9e
@ -2379,7 +2379,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;
|
||||
|
39
ext/mysql/tests/bug47438.phpt
Normal file
39
ext/mysql/tests/bug47438.phpt
Normal 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
|
Loading…
Reference in New Issue
Block a user