2013-05-08 71 views
0

我已经使用PHP连接到我的MS SQL Server 2008 R2。一切正常,除了输出显示两次。输出显示两次

下面是用于建立连接的PHP代码。任何帮助表示赞赏。

<?php 
$hostname = "localhost\FAIZ2"; 
$username = "sa"; 
$password = "11235813"; 
$database = "Test"; 
$connectioninfo = array("UID"=>$username,"PWD"=>$password,"Database"=>$database); 
$link = sqlsrv_connect($hostname,$connectioninfo) or die(print_r(sqlsrv_errors(), true)); 

$sql = "SELECT * FROM StudentData"; 
$result = sqlsrv_query($link,$sql) or die("Unable to select: ".sqlsrv_errors()); 
print "<table>\n"; 
while($row = sqlsrv_fetch_array($result)) { 
print "<tr>\n"; 
foreach($row as $field) { 
    print "<td>$field</td>\n"; 
} 
print "</tr>\n"; 
} 
print "</table>\n"; 
sqlsrv_close($link); 

?> 
+0

专门被打印两次呢? – mroach 2013-05-09 00:27:56

+0

例如,如果我的数据库中有三列,比如包含值{1,abc,def},值{2,ghi,jkl}和{3,mno,pqr}的id,FName,LName,则输出为像这样=> [{“0”:1,“id”:1,“1”:“abc”,“Fname”:“abc”,“2”:“def”,“Lname”:“def” },{ “0”:2 “ID”:2 “1”: “GHI”, “FNAME”: “GHI”, “2”: “JKL”, “L-NAME”: “JKL”},{” 0 “:3”,ID “:3”,1 “:” MNO”, “FNAME”: “MNO”, “2”: “PQR”, “L-NAME”: “PQR”},{ “0”:3 ,“id”:3,“1”:“mno”,“Fname”:“mno”,“2”:“pqr”,“Lname”:“pqr”}] – user2337704 2013-05-09 11:15:13

回答

0

默认情况下,sqlsrv_fetch_array()返回包含数字键和命名的字段的键阵列。所以每个列值都返回两次。所以,你最终会与像行...

[0] => 123 
['id'] => 123 
[1] => 'Bobby' 
['name'] => 'Bobby' 
[2] => '1994-03-03' 
['date_of_birth'] => '1994-03-03' 

SQLSRV_FETCH_ASSOCSQLSRV_FETCH_NUMERIC参数添加到sqlsrv_fetch_array像这样:

$row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)

+0

Thanks!有效 :) – user2337704 2013-05-09 11:17:12