2013-07-24 62 views
-2

我已通過Windows身份驗證在我的php文件中與我的SQL數據庫建立了連接。但是我不確定如果我想在顯示整個表格的php頁面上顯示一個簡單的SQL查詢(如從媒體中選擇*),語法的外觀如何。我嘗試了一些方法,但它顯示了一個致命的錯誤。在PHP文件中運行SQL查詢

這裏是我的PHP代碼:

 <?php 

    $serverName = "172.20.90.170,5050"; //serverName\instanceName 

    // Since UID and PWD are not specified in the $connectionInfo array, 
    // The connection will be attempted using Windows Authentication. 
    $connectionInfo = array("Database"=>"TestDB"); 
    $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)); 
    } 
    $version = mssql_query('SELECT * FROM MEDIA'); 
    $row = mssql_fetch_array($version); 
    echo $row[0]; 

    ?> 

致命錯誤:

Fatal error: Call to undefined function mssql_query() 

這將建立一個成功的連接,但我需要在我的代碼更改該查詢運行錯誤免費並顯示所需的輸出?

+1

...繼續使用'sqlsrv_'函數? –

+1

你正在使用'sqlsrv_connect',爲什麼然後你會嘗試使用'mssql_query'?你不想使用'sqlsrv_query'? –

+1

請參閱:http://php.net/manual/en/function.sqlsrv-query.php – Geoffrey

回答

1

根據我的理解,你是PHP新手,但是,你將有更多的設施去做你想做的事。

下面是使用您的數據的示例。 如果你學習,你可以理解。

try 
{ 
    $connection = new PDO("sqlsrv:Server=172.20.90.170;Database=TestDB", "YOUR_USERNAME", "YOUR_PASSWORD"); 
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $connection->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_SYSTEM); 
}catch (Exception $e) 
{ 
    echo $e->getMessage(); 
    die('Connection could not be established.<br />'); 
} 

try 
{ 
    $sql = 'SELECT * FROM MEDIA'; 
    $query = $connection->prepare($sql); 
    $query->execute(); 

    $result = $query->fetchAll(PDO::FETCH_ASSOC); 
}catch (Exception $e) 
{ 
    die('Cant fetch rows.'); 
} 

foreach ($result as $r) 
{ 
    print_r($r); // do what you want here 
} 
+0

但它沒有使用SQL服務器身份驗證方法,因爲它要求的用戶名和密碼? –

+0

保留空白。 – ital0

+0

沒關係,所以這是顯示數據,但不是表格格式,它只是線後行,你知道我怎麼能像在SQL表中顯示它? –

3

看來你是混合兩個不同的API(sqlsrv_mssql_)。

如果您使用sqlsrv_,那麼一個簡單的語句可能看起來像:

$connectionInfo = array("Database" => "database", "UID" => "username", "PWD" => "password"); 
$conn = sqlsrv_connect("Server", $connectionInfo); 

$stmt = "SELECT [column] FROM [table] WHERE [id] = ?"; 
$params = array($id); 

$query = sqlsrv_query($conn, $stmt, $params); 
if($query === false) { 
    print(print_r(sqlsrv_errors())); 
} 

while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) { 
    echo $row['column']; 
} 

sqlsrv_close($conn); 

資源

+0

這是用於SQL Server身份驗證。你如何將選擇語句放在我的問題與Windows身份驗證方法? –

+0

@omarK PHP文檔展示瞭如何使用Windows身份驗證進行連接。 – Kermit

+0

我不確定,但現在它只是顯示一個空的白頁,當我試圖用你的代碼運行它。 –

0

正如其他人的評論說,你有兩個選擇:

1. Use sqlsrv_query 
2. Install MSSQL support to PHP. 

真誠的,我比較喜歡的功能使用mssql_ *棧。如果你使用ubuntu,你可以簡單地安裝MSSQL支持:

aptitude install php5-sybase