PHP 5.x 中是否有任何简单的方法来回显 RecordSet 上的任何类型的数据?

Is there any simple way in PHP 5.x to echo any type of data on a RecordSet?

就是这样。

我写了一个 SQL 愚蠢的声明,比如:

SELECT * FROM table

基本上我想要:

  1. 做一个通用的SELECT语句;
  2. 遍历结果集;
  3. 将元数据 "name" 打印为 Table Headers。
  4. 再次遍历结果集;
  5. 将每条记录打印为 table 行。
  6. 将每个字段打印为 table 列。
  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>";

请纠正我的任何不良做法或愚蠢的编码...我是这里的新手。

结果值可以specify the data type,选择string数据类型,如下:

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

或者,不要调用 sqlsrv_fetchsqlsrv_get_field,而是使用 sqlsrv_fetch_array,因为它会自动将所有检索到的数据转换为 string