【发布时间】:2016-11-25 07:46:27
【问题描述】:
我有一个网站正在从我的 MSSQL Server 中提取数据。我正在使用函数来构建报告表格。这是我得到的:
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 中运行它时它运行良好!
发生了什么事?
【问题讨论】:
标签: php sql-server pdo