2015-02-06 28 views
0

我目前正在使用PDO從MySQL數據庫通過Php Slim後端帶來一些數據的移動應用程序(前端)。這(後端)是由一個隊友開發的,在他的電腦上像一個魅力。SLIM應用程序錯誤。代碼8:數組到字符串轉換

有這應該返回一些JSON數據的GET路線:

$app->get('/users', function() { 
    require_once 'controllers/User.php'; 
    $user = new User(); 
    $user->setJsonMode(true); 
    $user->setJoin('default'); 
    $user->setSelect('user_id, user.role_id, role, name, 
        userName, email, picture, user.last_update'); 
    echo $user->select(); 
}); 

「用戶」控制器所有的人,從「CtrlDB」控制器繼承。

如果我嘗試訪問 'API /用戶' 我得到:

類型:ErrorException 代碼:8 消息:數組字符串轉換 文件:/首頁/害羞-N /項目/蒂恩達/api/controllers/CtrlDB.php 線:32

的線32位於CtrlDB構造:

public function __construct($table,$fields,$idProperty,$relations) { 
    $dsn = DB_ENGINE.':host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8'; 
    try { 
     $this->db = new PDO($dsn, DB_USERNAME, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
    } catch (PDOException $e) { 
     $response = $this->response("error","Connection failed: " . $e->getMessage(),null); 
     echo $response; 
     exit; 
    } 

    $this->table = $table; 
    $this->idProperty = $idProperty; 
    $this->fields = $fields; 
    $this->relations = $relations; 
    $this->start = 0; 
    $this->limit = 25; 
    $this->select = "`".implode("`, `",$fields)."`"; 
} 

在「 echo $回覆「我得到了錯誤,我不知道發生了什麼。

他使用的PHP 5.5.12

WAMP服務器我使用Arch Linux的64位與PHP 5.6.5 LAMP。我已啓用兩個擴展 mysqli.sopdo_mysql.so在我的php.ini文件中。

我已經導入了與phpmyAdmin一起使用的數據庫,其中包含與我的朋友在後端相同的寄存器。

儘管如此,他可以獲取JSON數據訪問/用戶路由,但我不能。

在此先感謝您的幫助。

回答

1

代替

echo $response; 

嘗試

echo json_encode($response); 

你不應該附和了陣列

+0

嗯,是的。我只用了print_r($ response)並看到了捕獲的PDO異常錯誤,結果竟然是我們不同的DB_USER和DB_PASSWORD配置......通信問題終於解決了這個問題。 – 2015-02-07 00:26:39

+1

很高興你得到它的工作 – 2015-02-07 01:07:36