Php PDO mysql查询不工作

Php PDO mysql查询不工作,php,pdo,mysqli,Php,Pdo,Mysqli,由于某种原因,此查询不起作用。它没有抛出任何错误。如果我在传统的mysqli中使用它。它起作用了。。我正在尝试将我的sql转换为pdo $conn = new PDO('mysql:dbname=test;host=localhost', 'root', 'root'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $user_id = is_numeric($_SESSION['user_id']) ?

由于某种原因,此查询不起作用。它没有抛出任何错误。如果我在传统的mysqli中使用它。它起作用了。。我正在尝试将我的sql转换为pdo

$conn = new PDO('mysql:dbname=test;host=localhost', 'root', 'root');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$user_id = is_numeric($_SESSION['user_id']) ? $_SESSION['user_id'] : die();
$stmt = $conn->prepare("SELECT * from posts WHERE user_id=:user_id ");
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$i=1;
if ($i=1) {
foreach ($rows as $row) {
if (($row["user_id"])==true){
echo $row["title"];
}  
}

这里有几个问题。首先,这

$user\u id=is\u numeric$\u SESSION['user\u id']吗$_会话['user_id']:die

太可怕了。我也没有看到一个会议开始,这可能是你的问题的实际原因。跟这样的人一起去

session_start();

if (!(isset($_SESSION['user_id']) && is_numeric($_SESSION['user_id']))) {
    throw new Exception('Invalid user id in session');
}
$user_id = $_SESSION['user_id'];
现在进行结果集迭代

$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);

foreach ($stmt as $row) { // this is possible because PDOStatement implements Traversable
    echo $row['title'];
}

$i=1;如果$i=1 wtf?冗余检查和错误运算符或有行计数语句。。我不知道这是否是问题所在,所以我删除了:DYou还有另一个关于$row[user_id]==true的冗余检查。had'if$stmt->rowCount>0{以前..是的..我从来没有使用过pdo..所以我试图消除所有可能的错误..现在甚至认为没有错误..它没有打印任何东西您知道为什么它不工作吗?: