2015-06-01 86 views
0

我正在學習PHP,並且似乎無法找到可以進入正常工作的sql select的語法。我只是想學習基礎知識。我有一個基本的PHP頁面,帶有一個文本框和一個提交按鈕。我真的只是使用按鈕來執行一個簡單的查詢,我正在嘗試。似乎沒有任何事情發生,我在網上找到的每個資源似乎都沒有說明整個故事(或者我只是缺少一些資料)。PHP和SQL Select語句

這是我在我的測試頁面。誰能告訴我我做錯了什麼?感謝:-)

<?php 
    $serverName = "some-sqlserver"; 
    $connectionOptions = array("Database"=>"123MyDatabase"); 
    /* Connect using Windows Authentication. */ 
    $conn = mssql_connect($serverName, $connectionOptions); 
    if($conn) { 
     echo "Connection established.<br />"; 
    }else{ 
     echo "Connection could not be established.<br />"; 
     die(print_r(mssql_errors(), true)); 
    } 
    $tsql = "SELECT [Col1] 
    FROM [123MyDatabase].[dbo].[vw_somesqlview]"; 
    //WHERE soemcolumn LIKE '%' + ? + '%'"; 
    //$params = array($_REQUEST['col1']); 
    $getCol1 = sqlsrv_query($conn, $tsql); 
    if ($getCol1 != null){ 
     //die(FormatErrors(mssql_errors())) 
     echo "<h2>Results:</h2>"; 
     echo $getCol1 ; 
     echo "<br>"; 
    } else { 
     echo "couldnt do it"; 
    } 

?> 
+0

添加錯誤檢查,以查詢過或檢查錯誤日誌。 –

+0

如果您正在學習,最好遠離'mysql_ *',因爲安全性好的原因已棄用,並將從PHP 7中刪除。嘗試使用PDO學習並準備好語句。看看,大量的例子。 – YvesLeBorg

+1

@JayBlanchard似乎他們混合了API * Sam * - 'sqlsrv_query'應該是'mssql_query'。至少,這似乎是。 –

回答

0

首先,你需要使用sqlsrv_connect,而不是mssql_connect。切勿混用並匹配你的函數的家庭

$conn = sqlsrv_connect($serverName, $connectionInfo); 

接下來,你需要的東西來分析您的查詢結果一樣sqlsrv_fetch_object

while($obj = sqlsrv_fetch_object($getCol1)) { 
    echo $obj->Col1; 
} 
+1

Lordie;這個可以擺動。 –

+0

是的。我只是挑了一個,然後用它跑。似乎也不會被棄用。絕對不能混用和匹配。 – Machavity

+0

確實如此。 --- *「我只是選了一個,然後跑了。」* - 我只是「跑」了;-) lol –

0

考慮使用標準的Windows ODBC Driver與PDO其配備通常在安裝的你SQL Server。

<?php 

$server="some-sqlserver"; 
$username="some-user"; 
$password="some-password"; 
$database="123MyDatabase"; 

# open the connection 
try { 
    $dbh = new PDO("odbc:Driver={SQL Server};Server=$server; 
        database=$database",$username,$password); 
    $sql = "SELECT * FROM dbo.vw_somesqlview";  
    $STH = $dbh->query($sql); 

    $STH->setFetchMode(PDO::FETCH_ASSOC); 
} 
catch(PDOException $e) { 
    echo $e->getMessage()."\n"; 
    exit; 
} 

while($row = $STH->fetch()) { 
    echo $row; 
} 

# close the connection 
$dbh = null; 

?>