Отображение таблицы с сервера mssql с помощью PHP
Я написал код для подключения к моему SQL-серверу, который успешно работает, но он отображает только имя столбца без соответствующего значения из базы данных. Что я делаю неправильно?
<?php
$serverName = "VM4FE8D04";
$databaseName = "NNPC-ChevronScholarship";
$connectionInfo = array("Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT * FROM ExamSlip";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.<br>\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "Name: ".$row[Names]."\n";
echo "Application No: ".$row[ApplicationNo]."\n";
echo "Serial No: ".$row[SerialNo]."<br>\n";
echo "-----------------<br>\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
2 ответа
Если вы используете
$row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC)
тогда на полученный массив следует ссылаться как
$row[0], $row[1],....
Я предлагаю вам использовать
$row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)
тогда вы можете использовать имена столбцов для ссылки на массив ассоциаций
$row['Names'], $row['ApplicationNo'], etc
но имена столбцов должны быть заключены в кавычки, как указано выше.
Использование SQLSERV_FETCH_ASSOC
получить данные в ассоциативном массиве
while( $row = sqlsrv_fetch_array( $stmt, SQLSERV_FETCH_ASSOC))
{
echo "Name: ".$row['Names']."\n";
echo "Application No: ".$row['ApplicationNo']."\n";
echo "Serial No: ".$row['SerialNo']."<br>\n";
echo "-----------------<br>\n";
}
Это решит вашу проблему.