2015-06-01 87 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; 

?>