mezclar y combinar mysql y mssql whileloop dentro de un caso if

Please take a look at the following code and tell me if there is a way around it.

if ($current_server_is_mysql):
    while ($row = mysql_fetch_assoc($RS)) {
else:
    while( $row = sqlsrv_fetch_array( $RS, SQLSRV_FETCH_ASSOC)){ 
endif:  

Depending on the server I'm working with, I'd like to compile my records into the $RS recordset the proper/native way. If I can get pass this part, the rest should be all right cause both mysql and mssql $row can be tapped into the same way. For example, $row['fieldname'] me dará el valor del campo si la fila era un recurso mysql o mssql. Así que todo se reduce a la falla del fragmento anterior.

El error que obtengo apunta a la else: parte del fragmento anterior.

Parse error: syntax error, unexpected T_ELSE in D:\Hosting\5291100\html\blueprint\pages\populate_migration_table.php on line 415

Puedo entender por qué recibo este error.

Pero espero que ustedes puedan ofrecer una solución alternativa sin que yo tenga que duplicar todo el ciclo while she-bang.

preguntado el 03 de mayo de 12 a las 17:05

1 Respuestas

Tienes algunas discrepancias de sintaxis, y poner tu código en una función como esta funcionó para mí:

if ($current_server_is_mysql):
    while ($row = mysql_fetch_assoc($RS)) {
        ProcessThisRow($row);
    }
else:
    while( $row = sqlsrv_fetch_array( $RS, SQLSRV_FETCH_ASSOC)){
        ProcessThisRow($row);
    }
endif;

function ProcessThisRow ($row) {
    /*Put your code in this function */
    return true;
}

contestado el 03 de mayo de 12 a las 18:05

Ups... Me acabo de dar cuenta de lo que estás tratando de lograr con el aparato ortopédico abierto. - PIB

VERY CLEVER. YOU ARE A SMART MAN!. - Joe medio

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.