php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #12895 mysql_fetch_row
Submitted: 2001-08-22 09:49 UTC Modified: 2002-07-22 02:56 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:0 (0.0%)
From: lampa at brutus dot troja dot mff dot cuni dot cz Assigned:
Status: Closed Package: Feature/Change Request
PHP Version: 4.0.6 OS: Debian 2.2
Private report: No CVE-ID: None
 [2001-08-22 09:49 UTC] lampa at brutus dot troja dot mff dot cuni dot cz
when i call mysql_fetch_row($result, MYSQL_BOTH) a should got associte array, but don't.

if there are some fields with NULL only number is shown not name of field
-------------
Example:

fields in db: id, t1, n1
value 0, 'text', NULL

after mysql_fetch_row($result, MYSQL_BOTH), print_r returns:
Array([0] => 5 [id] => 5 [1] => 'text' [t1] => 'text' [2] => 2)

there is missing n1 => 2

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-08-28 04:40 UTC] sander@php.net
mysql_fetch_row does NOT return an associative array. Use mysql_fetch_array or mysql_fetch_assoc instead.
 [2001-08-29 07:48 UTC] lampa at brutus dot troja dot mff dot cuni dot cz
ohh sorry, should be mysql_fetch_array, sorry for mistake
 [2001-08-29 11:15 UTC] cynic@php.net
assuming you meant you missed nl => null, and the dump should've ended with [2] => null instead of [2] => 2, this is a 'feature', and you're not the only one questioning this behavior. changing to change request. I hope Zeev notices this, and finally allows this change in. :)
 [2001-08-29 12:28 UTC] lampa at brutus dot troja dot mff dot cuni dot cz
for avoid a misunderstanding here is example, which shows this bug:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>mysql_fetch_array</title>
<meta name="generator" content="Handmade by Lampa">
</head>
<body>
<?
  if (!($linkid = @mysql_connect("localhost"))) {
    echo "Connecting failed<br>";
    exit();
  } else {
    echo "Connecting to db ok<br>";
  }

  @mysql_select_db("test");
  mysql_query("DROP TABLE test_lampa", $linkid);

  if (!(@mysql_query("CREATE TABLE test_lampa (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, txt VARCHAR(100), nr INT NULL)", $linkid))) {
    echo "Create failed<br>";
    exit();
  } else {
    echo "CREATE ok...<br>";
  }
  if (!(@mysql_query("INSERT INTO test_lampa VALUES(NULL, 'text', NULL)", $linkid))) {
    echo "INSERT failed<br>";
    exit();
  } else {
    echo "INSERT ok...<br>";
  }
  if (!($result = @mysql_query("SELECT * FROM test_lampa", $linkid))) {
    echo "SELECT failed<br>";
    exit();
  } else {
    echo "SELECT ok...<br>";
  }

  $line = mysql_fetch_array($result, MYSQL_BOTH);

  print_r($line);

  echo "<hr>You should see 6 values, 'coz there are 3 fields in db,but you see only 5 ---<b>BUG</b><br><br>";

  if (!(@mysql_query("INSERT INTO test_lampa VALUES(NULL, 'text', 1)", $linkid))) {
    echo "INSERT failed<br>";
    exit();
  } else {
    echo "INSERT ok...<br>";
  }
  if (!($result = @mysql_query("SELECT * FROM test_lampa", $linkid))) {
    echo "SELECT failed<br>";
    exit();
  } else {
    echo "SELECT ok...<br>";
  }

  $line = mysql_fetch_array($result, MYSQL_BOTH);
  $line = mysql_fetch_array($result, MYSQL_BOTH);   // get 2nd value

  print_r($line);

  echo "<hr>Here are really 6 values.";

  mysql_close($linkid);
?>    
</body>
</html>

 [2002-07-22 02:56 UTC] georg@php.net
This problem is fixed since Version 4.1.0
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 19:01:29 2024 UTC