Php 为什么这个pdo获取代码没有给出我想要的东西

Php 为什么这个pdo获取代码没有给出我想要的东西,php,pdo,Php,Pdo,我有以下代码用于从数据库中获取pdo中的数据: <?php $stmt = $pdo->query('SELECT `email` FROM hptenant WHERE user_id=:user_id'); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['email'] . "\n"; } ?> 但无论何时我使用它,它都会清空我的页面,在代码显示(HTML)之后就什么都没有了。 但

我有以下代码用于从数据库中获取pdo中的数据:

<?php 
$stmt = $pdo->query('SELECT `email` FROM hptenant WHERE user_id=:user_id');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    echo $row['email'] . "\n";
} ?>


但无论何时我使用它,它都会清空我的页面,在代码显示(HTML)之后就什么都没有了。 但是如果我用这个,

<?php $stmt = $pdo->query('SELECT `email` FROM hptenant');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    echo $row['email'] . "\n";
} ?> 


它会显示我数据库中的电子邮件。谁能帮帮我吗?

看起来你没有将任何东西绑定到
:user\u id

$stmt = $pdo->prepare('SELECT `email` FROM hptenant WHERE user_id=:user_id');
$stmt->bindParam(':user_id', $USER_ID_HERE);
$stmt->execute();
// while loop was unnecessary here (assuming user_id is unique)
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row['email'] . "\n";

看起来您没有将任何内容绑定到
:user\u id

$stmt = $pdo->prepare('SELECT `email` FROM hptenant WHERE user_id=:user_id');
$stmt->bindParam(':user_id', $USER_ID_HERE);
$stmt->execute();
// while loop was unnecessary here (assuming user_id is unique)
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row['email'] . "\n";

我看不到您要通过的位置
:user\u id
。如果您不向设置为基于变量提取一行数据的查询传递任何内容,您希望发生什么?您需要准备,然后执行或绑定/执行。您不能将绑定参数与
查询一起使用
启用某种形式的错误报告(如果您还没有)可能是值得的-给出了一个解决方案。我看不出您要将
传递到哪里:user\u id
。如果您不向设置为基于变量提取一行数据的查询传递任何内容,您希望发生什么?您需要准备,然后执行或绑定/执行。您不能将绑定参数与
查询一起使用
启用某种形式的错误报告(如果您尚未启用)可能值得一试。这里不需要
WHILE
循环,假设没有两个用户具有相同的
用户id
(他们不应该这样做)@GrumpyCrouton我肯定,但我不想偏离原始代码。我不认为修复一个疏忽会偏离原始代码,而且最好向op展示正确的方法。这个循环增加了OP可能没有意识到的不必要的开销。@GrumpyCrouton你说得对,我已经删除了不必要的开销loop@John,请允许我问这样一个“愚蠢”的问题,我使用的用户和这里建议的$user\u ID\u之间有什么区别。这是我需要申报的东西吗?我不熟悉PHP,尤其是PDO,所以请接受我的问题。
虽然这里不需要循环,但假设没有两个用户拥有相同的
用户id
(他们不应该有)。@GrumpyCrouton我肯定,但我不想偏离原始代码。我不认为修复一个疏忽会偏离原始代码,最好是向op展示正确的方法。这个循环增加了OP可能没有意识到的不必要的开销。@GrumpyCrouton你说得对,我已经删除了不必要的开销loop@John,请允许我问这样一个“愚蠢”的问题,我使用的用户和这里建议的$user\u ID\u之间有什么区别。这是我需要申报的东西吗?我不熟悉PHP,尤其是PDO,所以请接受我的问题。