【发布时间】:2021-07-27 05:25:36
【问题描述】:
我正在尝试从 woocommerce 网站使用 PHP 与 MSSQL Server 数据库进行通信(以获取产品、类别等数据)。但我没有得到任何结果,这是我的代码:
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT * FROM eshopItemsTable";
$stmt = sqlsrv_query($conn, $tsql);
//uncomment to get some results : $table = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
while( $table = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) {
print_r($table);
}
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
使用此代码它不会打印任何内容。但是,如果我取消注释while 上面的行,那么我会得到一些结果,但我没有得到所有结果(数据库中有大约 2000 个项目,但我得到了大约 10 个项目而没有第一个项目 - 这很明显,因为我已经消费了第一行)。获得所有结果的正确方法是什么?
【问题讨论】:
-
代码看起来不错(本质上,它与 PHP 文档中的示例匹配)。您是否尝试在 while 循环内或 while 循环后打印出错误 - sqlsrv_errors(),以查看是否确实发生了某种错误?另外,如果你只是在 while 循环中打印一个静态字符串,你会得到结果吗? (即,即使您看到“无结果”,您能否确认 while 循环是否实际发生?)
-
@Craig 如果我删除了注释行,那么它似乎没有进入 while - 它不会打印静态单词。 sqlsrv_errors() 也没有打印错误
-
这可能是超时,因为您正在从远程服务器获取 dqata。
-
这是您的网站运行的同一个数据库吗?还是换一个?
-
@Mr.Jo 不一样的
标签: php sql sql-server wordpress woocommerce