2017-06-26 5 views
1

Ich versuche, mit Ubuntu16.04 (LAMP-Stack) Server und PHP 7.0Probleme mit Ubuntu 16.04 zu MSSQL verbinden

Ich kann aber bisher zu einer MSSQL-Datenbank anzuschließen verbinden, wenn ich die folgenden Demo zu verwenden versuchen, Skript:

<?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 
?> 

I erhalten Fatal error: Uncaught Fehler: Call to undefined function mssql_connect() in /var/www/html/test2.php:2 Stapelüberwachung: # 0 {main} geworfen/var/www/html/test2.php auf Linie 2

Ich habe mit

php -v 

getestet und kann keine Fehler sehen. Befehlszeilen-Tests

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

Ergebnis in verbunden und ich kann Tabellen aufrufen.

Ich versuche sqlsrv/pdo_sqlsrv Module zu verwenden. Das freetds-Modul, alles, was ich zu diesem Zeitpunkt in die Finger kriegen kann, weil es sich um einen Testserver handelt. Ich habe sogar versucht, alles in HTML-Tags zu verpacken. Wenn Sie weitere Informationen von mir benötigen, lassen Sie es mich wissen.

Vielen Dank im Voraus.

+0

Wie der Fehler festgestellt, hat bestätigt, ob Funktion 'mssql_connect()' existiert oder nicht? – Eric

+0

Mögliches Duplikat von [PHP Schwerwiegender Fehler: Aufruf zu undefinierter Funktion mssql \ _connect()] (https://stackoverflow.com/questions/9986804/php-fatal-error-call-to-undefined-function-mssql-connect) – miken32

+0

@Eric Ich war unter dem Eindruck, dass von einem der Pakete (.so Dateien) behandelt wurde, nachdem ich die endlosen Tutorials verfolgt habe, kann ich mich irren. – Achmann

Antwort

4

Die mssql_* Familie von Funktionen für eine sehr lange Zeit veraltet sind, and were finally removed in PHP 7.0.

Sie wechseln können PDO zu verwenden, wie in einer anderen Antwort vorgeschlagen, oder die sqlsrv_* Funktionen nutzen:

<?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

Danke! Das hat den Trick gemacht, jetzt muss ich mehr php lernen: seufzen: – Achmann

2

Versuchen PDO statt mssql mit:

$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";