2016-11-19 80 views
0

我嘗試從與下面的代碼從數據庫中獲取的一些數據。 有一個用於連接詳細信息的通用配置文件。從MySQL獲取數據與PDO

的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"); 
    } 

?> 

有一個分開的文件來執行數據庫查詢。

query.inc.php

<?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"; 
    } 

?> 

它扔HTTP ERROR 500而不是JSON格式的字符串的。正如我所看到的,代碼在語法上是有效的,並且無法找到語義錯誤。配置也是有效的,我用另一個腳本測試了它。

+1

它記錄了什麼錯誤? http://csackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php – cske

+0

@cske:我發現了這個問題。變量'$ connection'未定義,因爲它在配置中初始化爲'$ conn'。 – appkovacs

+1

如果你可以回答這個問題,請發表一個答案。否則這個問題不會幫助任何人。 – tadman

回答

0

我發現這個問題。變量$connection未定義,因爲它在配置中初始化爲$conn。 您可以使用下面的代碼進行調試:

error_reporting(E_ALL); 
ini_set('display_errors', '1');