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
基本上我想要:
- 做一个通用的SELECT语句;
- 遍历结果集;
- 将元数据 "name" 打印为 Table Headers。
- 再次遍历结果集;
- 将每条记录打印为 table 行。
- 将每个字段打印为 table 列。
- 如何在现场测试数据,以便我可以正确地将此数据作为字符串回显?不知道我说清楚没有。
我不知道以前的语句会返回什么数据。
这是在尝试打印 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_fetch
和 sqlsrv_get_field
,而是使用 sqlsrv_fetch_array
,因为它会自动将所有检索到的数据转换为 string
。
就是这样。
我写了一个 SQL 愚蠢的声明,比如:
SELECT * FROM table
基本上我想要:
- 做一个通用的SELECT语句;
- 遍历结果集;
- 将元数据 "name" 打印为 Table Headers。
- 再次遍历结果集;
- 将每条记录打印为 table 行。
- 将每个字段打印为 table 列。
- 如何在现场测试数据,以便我可以正确地将此数据作为字符串回显?不知道我说清楚没有。
我不知道以前的语句会返回什么数据。 这是在尝试打印 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_fetch
和 sqlsrv_get_field
,而是使用 sqlsrv_fetch_array
,因为它会自动将所有检索到的数据转换为 string
。