我有一个网站从我的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