簡體   English   中英

如何使用 PHP 顯示 SQL Server 表數據?

[英]How do I display SQL Server table data using PHP?

我想開始顯示我使用 PHP 使用的 sql server 數據庫中的一些數據。 我相信我與數據庫的連接工作正常,但我無法從 Facility 表中獲取任何數據以顯示在瀏覽器中。 我一直在通過 XAMPP 使用 Apache 服務器來運行 PHP(PHP 8.0 版)。 SQL 服務器(2012 版)在大樓內的另一台機器上。 到目前為止,我有:

  1. 下載名為“php_sqlsrv_80ts.dll”和“php_sqlsrv_80_ts.dll”的 sqlsrv 擴展文件。 兩者都在我的 XAMPP php.ini 文件中作為新擴展名(見下文) 在此處輸入圖片說明
  2. 添加兩個新擴展后,重新啟動了我的 Apache 和 MySQL 服務器。
  3. 測試了我的連接並嘗試使用以下代碼顯示一些結果:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>MSSQL Connection Test</title> </head> <body> <?php $serverName = "###"; //serverName\\instanceName $connectionInfo = array( "Database"=>"UTRBDMSNET", "UID"=>"###", "PWD"=>"###"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } $query = "SELECT * FROM Facility;"; $result = sqlsrv_query($conn, $query); $resultCheck = sqlsrv_num_rows($result); if ($resultCheck > 0) { while ($row = sqlsrv_fetch_assoc($result)) { echo $row['Operator'] . "<br>"; } } ?> </body> </html>

當我在瀏覽器中轉到該文件時,我收到此消息“已建立連接”。 我在控制台中沒有看到任何內容。 如果沒有任何錯誤消息,很難判斷出了什么問題。 理想情況下,我想從我的數據庫中的任何表中顯示一些內容,看看事情是否正常。

查看@cotton 發布的兩個鏈接后,我能夠從數據庫中查詢一些數據。 我發現我的代碼有幾個問題:

  1. 當我在 SQL 查詢中使用*時似乎不喜歡。 如果我指定要查看的列並告訴它回顯表中的第一行,例如SELECT Operator FROM Facility ,它可以正常工作。 當我說SELECT * FROM Facility並在 echo 語句中指定列時,它給了我這個錯誤:

“警告:C:\\Users###\\Documents\\GitHub_Repos\\Utah_OG_Website\\MSSQLQueryTest.php 第 58 行中未定義的數組鍵“Operator””。

  1. 我需要在 while 語句中使用sqlsrv_fetch_arraySQLSRV_FETCH_NUMERIC 注意 - 它只接受大寫SQLSRV_FETCH_NUMERICsqlsrv_fetch_numeric
  2. 如果我使用if ($resultCheck > 0) {}它不會顯示任何結果。 我假設這與返回的數據類型有關,但尚不完全確定。

這是用於比較的工作代碼:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>MSSQL Connection Test</title> </head> <body> <?php $serverName = "###"; //serverName\\instanceName $connectionInfo = array( "Database"=>"###", "UID"=>"###", "PWD"=>"###"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } $query = "SELECT Operator FROM Facility;"; $result = sqlsrv_query($conn, $query); $resultCheck = sqlsrv_num_rows($result); while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_NUMERIC)) { echo $row[0] . "<br>"; } ?> </body> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM