[請益] PHP 連MSSQL 取資料問題(已解決)

作者: QAQKUKU5566 (被涼麵燙傷)   2015-06-22 18:46:57
小弟用PHP+IIS+MSSQL
但從DB取資料會有很大的問題
資料表
http://i.imgur.com/FAO4UTd.jpg
程式碼
$tsql = "select * from UserBook";
$stmt = sqlsrv_query( $conn, $tsql);
$row = sqlsrv_fetch_array($stmt);
$countf=sqlsrv_num_fields($stmt);
<CAPTION ALIGN=center ><font size="6" color="lightgreen" face="微軟正黑體
"><b>妳媽兒子的清單</b></font></CAPTION>
<tr bgcolor="yellow">
<th>序號</th>
<th>帳號</th>
<th>密碼</th>
<th>真名</th>
<th>性別</th>
<th>年齡</th>
<th>地址</th>
<th>電話</th>
</tr>
while($row=sqlsrv_fetch_array($stmt))
{
echo "<tr>";
//這邊會用$countf -3 是因為時間欄位無法顯示
所以排除掉時間後面的欄位不顯示
for($i=0;$i<=$countf-3;$i++){
echo "<td width=100>".$row[$i]."</td>";
}
echo "</tr>";
}
echo "</tr></table>";
程式碼圖片版本
少拍兩行
$tsql = "select * from UserBook";
$stmt = sqlsrv_query( $conn, $tsql);
http://i.imgur.com/ykp1sHt.jpg
輸出結果
http://i.imgur.com/epsKm5v.jpg
問題
1.只有第一筆(mId=1 那筆)顯示不出來 其他OK
找到問題點了 單純程式錯誤
$row = sqlsrv_fetch_array($stmt);用了兩次
難怪第一行不見~_~
2.時間欄位無法顯示 $row['dBuildDate']
用gettype()取得的結果為... object(哪泥=口=!?)
其他欄位 integer 就 integer string就string
(dBuildDate是用SQL Server與法getDate()產生)
已解決 參考一樓大大的連結
使用 date_format( $row['dBuildDate'], 'Y-m-d H:i:s' )
3.SQL下篩選條件 有符合的兩筆資料 只會顯示第一筆
$tsql = "select * from UserBook where cPassword='orbit'";
結果
http://i.imgur.com/sXIRZio.jpg
明明有兩筆= = (mId=14 和 15 這兩筆)
答案同第一問
請問版上有大大 有再用PHP+MSSQL嗎 =口="
這些問題卡小弟很久 正在找其他寫法
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-22 20:42:00
你的第二點心聲,MS有聽到 https://goo.gl/jrcb2v
作者: alog (A肉哥)   2015-06-22 22:50:00
快把握時間學一下laravel人生從此快活XD
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-22 22:54:00
對,好好的wrapper不用是何苦學個doctrine也不錯 起碼pdo吧
作者: tkdmaf (皮皮快跑)   2015-06-22 23:07:00
推pdo

Links booklink

Contact Us: admin [ a t ] ucptt.com