Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL

mssql_fetch_row

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

mssql_fetch_rowLiefert einen Datensatz als indiziertes Array

Beschreibung

array mssql_fetch_row ( resource $result )

mssql_fetch_row() liefert einen Datensatz von dem Ergebnis, das zur angegebenen Ergebniskennung result gehört. Der Datensatz wird als Array zurückgegeben. Jedes Feld des Ergebnisses wird in einem Array-Offset gespeichert, der bei Offset 0 beginnt.

Ein nachfolgender Aufruf von mssql_fetch_row() gibt den nächsten Datensatz aus dem Ergebnis zurück oder FALSE, wenn es keine weiteren Datensätze gibt.

Parameter-Liste

result

Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().

Rückgabewerte

Gibt ein Array mit dem gelieferten Datensatz zurück oder FALSE, wenn es keinen weiteren Datensatz gibt.

Beispiele

Beispiel #1 mssql_fetch_row()-Beispiel

<?php
// Mit MSSQL verbinden und Datenbank auswählen
$verbindung mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$verbindung);

// Die auszuführende Anfrage
$anfrage mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\''$verbindung);

// Schlug die Anfrage fehl?
if (!$anfrage) {
    die(
'MSSQL-Fehler: ' mssql_get_last_message());
}

// Den Datensatz abrufen
$datensatz mssql_fetch_row($anfrage);

// 'quote' ausgeben
echo 'Zitat #' $datensatz[0] . ': "' $datensatz[1] . '"';
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Zitat #42: "Die Antwort auf alles..."

Anmerkungen

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-NULL.

Siehe auch

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