我正在使用PHP查询Microsoft SQL Server并返回结果集。我的问题是PHP代码返回我想要的结果集,但它只是一个部分结果集。如何使用PHP查询MS SQL Server而不列出列名?
的全表具有用于此实例中
下面数据的列是在一个HTML摘录数据库表的设计的代码片断:
<!DOCTYPE html>
<html>
<body>
<table border="1" style="width:100%">
<tr>
<td>COL1</td>
<td>COL2</td> \t \t
<td>COL3</td>
<td>COL4</td>
<td>COL5</td> \t \t
<td>COL6</td>
</tr>
<tr>
<td>rowdata</td>
<td>rowdata</td> \t \t
<td>rowdata</td>
<td>rowdata</td>
<td>rowdata</td> \t \t
<td>rowdata</td>
</tr>
<tr>
<td>rowdata</td>
<td>rowdata</td> \t \t
<td>rowdata</td>
<td>John</td>
<td>rowdata</td> \t \t
<td>rowdata</td>
</tr>
</table>
</body>
</html>
以下是用于查询SQL Server的PHP脚本:
<?php
$serverName = "sqlserver";
$uid = "username";
$pwd = "password";
$databaseName = "databasename";
$connectionInfo = array("UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect($serverName, $connectionInfo);
$tsql = "SELECT * FROM TABLE " ;
/* 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));
}
//Working Query
/* Iterate through the result set printing a row of data upon each iteration. */
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
foreach ($row as $column=>$value)
{
echo
$column.": " .$value."<br />";
}
echo '<hr />';
}
/* Free statement and connection resources. */
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
这是问题,只返回列和数据的那些列什么是PHP控制台返回
例行:
Statement executed.<br>
COL1: rowdata<br />COL2: rowdata<br />COL3: rowdata<br />COL4: rowdata<br />
如果您还不知道,我试图显示查询的完整结果集,而不列出PHP中的列。
I.E.
echo $row[1];
echo $row[2];
echo $row[3];
等
------------------------------------- -------------- UPDATE --------------------------------- ---------------------------
我发现有一个问题,DATETIME SQL Server中的列。当我在PHP代码中传递SQL查询中的列时,它返回完整的结果集。这是一个工作,但我想保留DATETIME格式,只是传递查询而不是投它。
想法?
更新的代码:什么是在PHP控制台返回
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect($serverName, $connectionInfo);
$tsql = "SELECT
COL1,
COL2,
COL3,
CAST(COL4 AS VARCHAR) 'COL4'
COL5,
COL6
FROM TABLE " ;
例子:
Statement executed.<br>
COL1: rowdata<br />COL2: rowdata<br />COL3: rowdata<br />COL4: rowdata<br />COL5: rowdata<br />COL6: rowdata<br />
COL1: rowdata<br />COL2: rowdata<br />COL3: rowdata<br />COL4: rowdata<br />COL5: rowdata<br />COL6: rowdata<br />
正如你可以看到它返回整个结果集的表。
看来,当我回显每列时,也会返回4列的限制。我想知道可以返回的函数是否有限制?对于我想要做的事似乎很麻烦。我需要的是一个SELECT语句的完整结果集... –