在PHP 5.x中是否有任何简单的方法来回显RecordSet上的任何类型的数据?
问题描述:
就是这样。在PHP 5.x中是否有任何简单的方法来回显RecordSet上的任何类型的数据?
我写了一个SQL语句哑鸭,如:
SELECT * FROM table
基本上我想:
- 做一个普通的SELECT语句;
- 通过Resulset循环;
- 将元数据“名称”打印为表格标题。
- 再次循环结果集;
- 将每条记录打印为表格行。
- 将每个字段打印为表格列。
- 如何在字段中测试数据,以便我可以正确地将这些数据作为字符串进行回显?我不确定自己是否清楚。
我不知道什么数据将返回形成报表,以前。 这是尝试打印日期时间字段,并获得错误后的动机。
这是我的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
。
注意的是,在第一循环中,您已经把'strong'结束标记'td'之外。另外,你可以只写**回声“$值” **不点操作。 – trincot
谢谢,@trincot,我在有点急的时候写了这个脚本......已经修复了。 :) – JrZabott