2016-11-19 1 views
0

아래 코드로 데이터베이스에서 데이터를 가져 오려고합니다. 연결 세부 정보에 대한 일반 구성 파일이 있습니다.PDO로 MySQL에서 데이터 가져 오기

config.inc.php를이

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "test"; 

try { 
     $connection = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
     $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
catch(PDOException $e) 
    { 
     die("OOPs something went wrong"); 
    } 

?> 

데이터베이스 쿼리를 수행 할 수있는 구분 된 파일이 있습니다.

그것은 JSON 형식의 문자열 대신 HTTP ERROR 500을 던져

<?php 

    require_once('config.inc.php'); 
    $sql = 'SELECT name from table'; 
    $statement = $connection->prepare($sql); 
    $statement->execute(); 
    if($statement->rowCount()) 
    { 
    $row_all = $statement->fetchall(PDO::FETCH_ASSOC); 
    header('Content-type: application/json'); 
    echo json_encode($row_all);   
    } 
    elseif(!$statement->rowCount()) 
    { 
    echo "no rows"; 
    } 

?> 

query.inc.php. 내가 보았 듯이 코드는 구문 적으로 유효하고 의미 론적 오류를 찾을 수 없습니다. 구성도 유효합니다. 다른 스크립트로 테스트했습니다.

+1

어떤 오류가 기록됩니까? http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php – cske

+0

@cske : 문제를 발견했습니다. 변수'$ connection'는 config에서'$ conn'로 초기화 되었기 때문에 정의되지 않았습니다. – appkovacs

+1

답변 할 수 있다면 답변을 게시하십시오. 그렇지 않으면이 질문은 누구에게 도움이되지 않습니다. – tadman

답변

0

문제점을 발견했습니다. 변수 $connection은 구성에서 $conn으로 초기화 되었기 때문에 정의되지 않았습니다. 디버깅을 위해 아래 코드를 사용할 수 있습니다 :

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
관련 문제