2013-12-19 3 views
0

어떤 이유로이 쿼리가 작동하지 않습니다. 오류가 발생하지 않습니다. 내가 전통적인 mysqli에서 사용한다면. 그것은 작동합니다 .. 메신저 pdo로 내 SQL을 변환하려고.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

'$ I = 1; 경우 ($ I = 1)'무슨 일? 중복 체크와 잘못된 연산자 – 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

hi .. 응답 해 주셔서 감사합니다 – user3117384

+0

@ user3117384 환영합니다. 도움이 되었습니까? – Phil

관련 문제