簡體   English   中英

PDO MySQL查詢不起作用

[英]PDO mysql query not working

由於某種原因,此查詢無法正常工作。 它不會引發任何錯誤。 如果我在傳統的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_id = is_numeric($ _ SESSION ['user_id'])嗎? $ _SESSION ['user_id']:die();

太可怕了 我也沒有看到session_start() (這可能是造成您問題的實際原因)。 與類似的東西一起去

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'];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM