我正在使用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語句的完整結果集... –