PHP 5.5.15 is released

mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_rowGet row as enumerated array

Description

array mssql_fetch_row ( resource $result )

mssql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Parameters

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Return Values

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Examples

Example #1 mssql_fetch_row() example

<?php
// Connect to MSSQL and select the database
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Query to execute
$query mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\''$link);

// Did the query fail?
if (!$query) {
    die(
'MSSQL error: ' mssql_get_last_message());
}

// Fetch the row
$row mssql_fetch_row($query);

// Print the 'quote'
echo 'Quote #' $row[0] . ': "' $row[1] . '"';
?>

The above example will output something similar to:

Quote #42: "The answer to everything..."

Notes

Note: This function sets NULL fields to the PHP NULL value.

See Also

add a note add a note

User Contributed Notes 3 notes

up
0
zombie(at)artattack(dot)to
10 years ago
It seems that when you use the MSSQL fetch_* functions you need to manually reset the $result 's internal pointer when doinging a while loop.

i.e.the below seems to only print out the first set. I don't remember this being the case with mysql, but it makes sense that it would do the same.

while ($or_date_info = mssql_fetch_assoc($result)){
echo '1st pass<BR>';  
print_r($or_date_info);
}
while ($or_date_info = mssql_fetch_assoc($result)){
  echo '2nd pass<BR>'; 
  print_r($or_date_info);
}

Blaine Garrett
http://artattack.to?zombie
up
0
siivv at yahoo dot com
12 years ago
jus do this instead.. no for loop necessary

while($line = mssql_fetch_row($result)){
print "$line[0],$line[1]";  // etc.
}

no need to have a whole extra variable $i tossed in
up
0
will_ <sql at mookandblanchard dot com>
12 years ago
It took me way too long to notice the MySQL error in the note above (way tooo late and not enough sleep).  Here's what I hacked up:

<?php
$hostname
= "localhost";
$username = "username";
$password = "password";
$dbName = "database";

MSSQL_CONNECT($hostname,$username,$password) or DIE("DATABASE FAILED TO RESPOND.");
mssql_select_db($dbName) or DIE("Table unavailable");

$query = "SELECT * FROM dbo.table";

$result = mssql_query( $query );

for (
$i = 0; $i < mssql_num_rows( $result ); ++$i)
     {
        
$line = mssql_fetch_row($result);
         print(
"$line[0] - $line[1]\n");
     }
?>

Thanks,

will_  @ irc.openprojects.net#php
To Top