2017-06-26 70 views
1

我想了Ubuntu16.04(LAMP堆棧)服務器和PHP連接到MSSQL數據庫的問題7.0與Ubuntu 16.04連接MSSQL

到目前爲止,我可以連接然而,當我嘗試使用下面的演示腳本:

<?php 
$conn = mssql_connect("BWSQL", "<usrname>", "<password>"); 
mssql_select_db("infobase", $conn); 
$query_result = mssql_query("SELECT * FROM dbo.Staff", $conn); 
echo "The field number one is: "; 
echo mssql_result ($query_result, 0, 0); 
mssql_close($conn); // close connection 
?> 

我收到 致命錯誤:未捕獲的錯誤:調用未定義功能mssql_connect()在/var/www/html/test2.php:2堆棧跟蹤:#{0}主拋出/第2行的var/www/html/test2.php

我已經過測試

php -v 

並且可以看到沒有錯誤。命令行測試

tsql -S BWSQL -U <usrname> -P <password> -D myData 

結果連接,我可以調用表。

我想使用sqlsrv/pdo_sqlsrv模塊。 freetds模塊,在這一點上我可以得到任何東西,因爲這是一個測試服務器。我甚至嘗試在html標籤中包裝所有東西。如果有任何您需要的信息請告訴我。

在此先感謝。

+0

由於錯誤陳述,你確認功能'mssql_connect()'是否存在與否? – Eric

+0

[PHP致命錯誤:調用未定義的函數mssql \ _connect()](https://stackoverflow.com/questions/9986804/php-fatal-error-call-to-undefined-function-mssql-connect) – miken32

+0

@Eric在跟隨無盡的教程之後,我的印象是由一個軟件包(.so文件)處理的,我可能是錯的。 – Achmann

回答

4

mssql_*家庭的功能已經過時了很長一段時間,and were finally removed in PHP 7.0

您可以切換到使用PDO所建議的另一個答案,或使用sqlsrv_*功能:

<?php 
$params = [ 
    "UID" => "<usrname>", 
    "PWD" => "<password>", 
    "Database" => "infobase", 
]; 
$conn = sqlsrv_connect("BWSQL", $params); 
$query_result = sqlsrv_query($conn, "SELECT * FROM dbo.Staff"); 
$row = sqlsrv_fetch_array($query_result); 
echo "The field number one is: $row[0]"; 
sqlsrv_close($conn); // close connection 
+0

謝謝!這個伎倆,現在我必須學習更多的PHP:嘆氣: – Achmann

2

嘗試使用PDO,而不是mssql

$host = "BWSQL"; //azure 
$db = "infobase"; 
$user "<username>"; 
$pass = "<password>";  
try { 
    $pdo = new PDO("sqlsrv:server=$host;Database=$db", $user, $pass); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

} 
catch (PDOException $e) 
{ 
    print("Error connecting to SQL Server."); 
    die(print_r($e)); 
} 
$sql = "SELECT * FROM dbo.Staff"; 
$qry = $pdo->prepare($sql); 
$qry->execute(); 
$result = $qry->fetchColumn(0); 
echo "The field number one is: $result";