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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: lampa at brutus dot troja dot mff dot cuni dot cz
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2025 The PHP Group
All rights reserved.
Last updated: Wed May 07 15:01:31 2025 UTC