[请益] PHP 连MSSQL 取资料问题(已解决)

楼主: QAQKUKU5566 (被凉面烫伤)   2015-06-22 18:46:57
小弟用PHP+IIS+MSSQL
但从DB取资料会有很大的问题
资料表


程式码
$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);


输出结果


问题
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'";
结果


明明有两笔= = (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