php - 我正在尝试使用 php 在 SQL Server 中显示行
问题描述
建立连接并运行查询后我得到的响应是“类型的资源(4)(SQL Server 连接)”
<?php
$serverName = "xx.xx.xx.xx";
$uid = "sa";
$pwd = "xxxxxxxxxx";
$databaseName = "courierdb";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
var_dump($conn);
/* Execute the query. */
$sql = "SELECT * FROM dbo.AwbDomestics";
$stmt = sqlsrv_query( $conn, $sql);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC))
{
if (sqlsrv_has_rows($stmt)) {
echo "row:<br>"; var_dump($row); echo "<br><br>";
}
else {
echo "<br/>No Results were found.";
}
}
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
如果没有这种类型的“资源(4)(SQL Server 连接),我如何选择数据库中的所有行。非常感谢任何帮助。
解决方案
if (sqlsrv_has_rows($stmt))
测试应该围绕循环,而不是在循环内部。
if (sqlsrv_has_rows($stmt)) {
while ($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC))
{
echo "row:<br>"; var_dump($row); echo "<br><br>";
}
else {
echo "<br/>No Results were found.";
}
}
要检查查询中的错误,您应该检查 if $stmt
is FALSE
, not $conn
。所以改变
if ($conn == false)
至
if (!$stmt)
推荐阅读
- sql - 我想将最近 30 天的销售和 30 到 90 天的销售加上更多的权重 (1.5) 到最后 30 天的销售
- c++ - c ++重复N次迭代
- python - 亚马逊网络服务:使用python套接字IP地址设置与本地机器的服务器-客户端连接
- angular - 带有 NGRX 商店的 Angular 组件库项目
- git - 如何使用 git ?当你不够聪明时
- java - 将从远程 url 返回的字符串分配给变量
- javascript - javascript 中的安全 API
- java - proguard 在使用转换方法引用时是否有问题?
- maven - Maven 项目初始化程序
- testing - 我是 Protractor 测试的新手,请您告诉我如何为登录网页编写脚本并转到下一页