Php PDO准备的语句和MSSQL数据库无法正常运行

Php PDO准备的语句和MSSQL数据库无法正常运行,php,sql-server,database,pdo,Php,Sql Server,Database,Pdo,使用PDO在MSSQL数据库上运行准备好的查询时遇到问题。我可以连接到数据库并运行不带参数的SELECT查询,但现在我正尝试使用一个参数:user运行一个简单的SELECT查询。但是,代码不返回任何值,尽管在数据库中肯定有一行具有该值。以下是我使用的代码: $db = new PDO('dblib:host='.$dbHost.';dbname='.$dbName.';charset=utf8mb4',$dbUser, $dbPass); $stmt = $db->prepare('SEL

使用PDO在MSSQL数据库上运行准备好的查询时遇到问题。我可以连接到数据库并运行不带参数的SELECT查询,但现在我正尝试使用一个参数:user运行一个简单的SELECT查询。但是,代码不返回任何值,尽管在数据库中肯定有一行具有该值。以下是我使用的代码:

$db = new PDO('dblib:host='.$dbHost.';dbname='.$dbName.';charset=utf8mb4',$dbUser, $dbPass);
$stmt = $db->prepare('SELECT * FROM customer WHERE email_address = :user ');
$stmt->bindValue(":user", $_SESSION["username"], PDO::PARAM_STR);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
我没有收到来自var_转储的输出。我知道数据库中有一个正确的行,所以我尝试:

$stmt = $db->prepare("SELECT * FROM customer WHERE email_address = 'the@email.com'");
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

但仍然没有返回任何值。我在PDO上做错什么了吗?如果我在查询栏中键入这个精确的查询,它将运行

好吧,我是个白痴。忘记执行查询了。为处于同样困境的人修订的守则:

$db = new PDO('dblib:host='.$dbHost.';dbname='.$dbName.';charset=utf8mb4',$dbUser,  $dbPass);
$stmt = $db->prepare('SELECT * FROM customer WHERE email_address = :user ');
$stmt->bindValue(":user", $_SESSION["username"], PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

您忘记执行查询了

在参数绑定之后,将以下代码放入:

$stmt->execute();