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

mssql_fetch_rowLee una línea del resultado de la consulta MS SQL dentro de un array numérico


Esta función está OBSOLETA en PHP 7.0.0.

Las alternativas a esta función son:


array mssql_fetch_row ( resource $result )

mssql_fetch_row() lee una linea de datos del resultado . La fila es devuelta como un array. Cada columna del resultado está guardada en un elemento del array, empezando desde el índice 0.

Las llamadas siguientes a mssql_fetch_row() devolverán la siguiente fila en el conjunto resultado, o FALSE si no hay más filas.



El resultado que está siendo evaluado. Este resultado procede de una llamada a mssql_query().

Valores devueltos

Devuelve un array que corresponde a la fila leída, o FALSE si no hay más filas.


Ejemplo #1 Ejemplo con mssql_fetch_row()

// Conectar a MSSQL y seleccionar la base de datos
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');

// Ejecutar la consulta
$query mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\''$link);

// La consulta falló ?
if (!$query) {
'MSSQL error: ' mssql_get_last_message());

// Leer la fila
$row mssql_fetch_row($query);

// Mostrar la información
echo 'Quote #' $row[0] . ': "' $row[1] . '"';

El resultado del ejemplo sería algo similar a:

Quote #42: "La respuesta a todo..."


Nota: Esta función define campos NULOS al valor NULL de PHP.

Ver también

add a note add a note

User Contributed Notes 3 notes

14 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>';  
while ($or_date_info = mssql_fetch_assoc($result)){
  echo '2nd pass<BR>'; 

Blaine Garrett
will_ <sql at mookandblanchard dot com>
15 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:

= "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);
"$line[0] - $line[1]\n");


will_  @
siivv at yahoo dot com
15 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
To Top