Есть ли в PHP 5.x какой-либо простой способ отобразить любой тип данных в RecordSet?

Вот и все.

Я написал SQL-выражение тупо, как утка, как:

SELECT * FROM table

В основном я хочу:

  1. Сделайте общий оператор SELECT;
  2. Цикл через Resulset;
  3. Выведите метаданные «имя» в виде заголовков таблицы.
  4. Переберите Resultset снова;
  5. Напечатайте каждую запись как строку таблицы.
  6. Напечатайте каждое поле как столбец таблицы.
  7. Как проверить данные в поле, чтобы я мог правильно отобразить эти данные в виде строки? Я не уверен, что я ясно дал понять.

Я не могу знать, какие данные будут возвращены из заявлений, ранее.
Это мотивируется после попытки печати полей DateTime и получения ошибки.

Это мой код PHP:

    $sql = "SELECT * FROM client";

$stmt = sqlsrv_query($conn, $sql);

if( $stmt === false)
{
die( print_r( sqlsrv_errors(), true));
}

$num_fields = sqlsrv_num_fields($stmt);

echo '<table class="table table-striped table-bordered">';
// Output Headers - In SQL Server

echo '<tr  style="font-size:12px">';
foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata )
{
foreach( $fieldMetadata as $name => $value)
{
if ($name == "Name"){
echo  "<td><strong>" . "$value" . "</td></strong>";
}
}

}
echo "</tr>";

// Output fields data, after fetch new row.
while ( sqlsrv_fetch ( $stmt ) )
{
// \echo '<tr class="small"  style="font-size:10px">';
echo '<tr class="small">';
for ($i = 0; $i < $num_fields; $i++)
{
echo '<td class="text-nowrap">';
print_r (sqlsrv_get_field($stmt, $i));
echo "</td>";
}
echo "</tr>";
}
echo "</table>";

Пожалуйста, поправьте меня в отношении любой плохой практики или глупого кодирования … Я здесь новичок.

0

Решение

Вы могли бы указать тип данных значения результата и выберите string Тип данных, как показано ниже:

print_r (sqlsrv_get_field($stmt, $i, SQLSRV_PHPTYPE_STRING( SQLSRV_ENC_CHAR)));

Или вместо звонка sqlsrv_fetch а также sqlsrv_get_fieldиспользовать sqlsrv_fetch_array так как это автоматически преобразует все полученные данные в string,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]