2013-12-19 4 views
0

По какой-то причине этот запрос не работает. Он не бросает никаких ошибок. если я использую его в традиционном mysqli. он работает .. im пытается конвертировать мой sql в pdo.PDO mysql запрос не работает

$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"]; 
} 
} 
+0

'$ я = 1, если ($ я = 1)' ВТФ? Redundant check и неправильный оператор – Phil

+0

У меня было утверждение счетчика строк .. не знал, была ли эта проблема, поэтому я удалил это: D – user3117384

+0

У вас также есть лишняя проверка вокруг '($ row [" user_id "]) == true'. – Phil

ответ

0

Пара проблем здесь. Во-первых, это ...

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

привет .. спасибо за ваш ответ – user3117384

+0

@ user3117384 Приветствуется? Помогла ли это вообще? – Phil

Смежные вопросы