我有一個網站從我的MSSQL服務器提取數據。我正在使用函數爲報表構建表。下面是我得到了什麼:PDO PHP選擇不同的查詢不適用於mssql
function BeginTable($rowCount,$headings,$searchValue,$ReportName,$OneButton,$NewSearch)
{
try{
$StateSelectSQL = "select distinct State from pmdb.MaterialTracking where State is not null";
var_dump($StateSelectSQL);echo " What!<br>";
$getSelect = $conn->query($StateSelectSQL);
var_dump($getSelect);echo " When!<br>";
$StateSelectNames = $getSelect->fetchALL(PDO::FETCH_ASSOC);
var_dump($StateSelectNames);echo " Where!<br>";
}
catch(Exception $e)
{
echo "Something went wrong";
die(print_r($e->getMessage()));
}
我想這太:
try{
$StateSelectSQL = "select distinct State from pmdb.MaterialTracking where State is not null";
var_dump($StateSelectSQL);echo " What!<br>";
$getSelect = $conn->prepare($StateSelectSQL);
$getSelect->execute();
//$getSelect = $conn->query($StateSelectSQL);
//var_dump($getSelect);echo " When!<br>";
$StateSelectNames = $getSelect->fetchALL(PDO::FETCH_ASSOC);
var_dump($StateSelectNames);echo " Where!<br>";
}
catch(Exception $e)
{
echo "Something went wrong<br>";
die(print_r($e->getMessage()));
}
第二和第三var_dump
「從來沒有任何顯示和代碼(此處未示出)的其餘部分不得到運行。如果我註釋掉$getSelect
和$StateSelectNames
行(其中var_dump
位於它們下面),那麼其他所有內容都可以正常工作。
這裏是我的DBConn.php文件,是included
的Function
以上:
$conn = new PDO("sqlsrv:server=$servername;database=$dbname", $username,$password);
//set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 10);
什麼是錯行$getSelect = $conn->query($StateSelectSQL);
我無法弄清楚。我試過在我的foreach
這樣使用它:
foreach($conn->query($StateSelectSQL) as $StateName)
但是這也行不通。它再次停在這條線上,不再進一步。我唯一能想到的就是我的SQL搞砸了,但是當我在SSMS中運行它時,它工作正常!
發生了什麼事?
我加入了嘗試捕捉周圍(見上文),但仍然只有後到達第一個'var_dump'然後什麼!它不會拋出錯誤。 – Mike