2017-04-05 179 views
0

嗨,我不能解決這個錯誤,我不知道爲什麼顯示了 我檢查了我的數據庫和所有列都存在,我不知道如何解決它,有人可以幫我。致命錯誤:帶有消息'SQLSTATE [42S22]的未捕獲異常'PDOException':未找到列:1054 display.php中的未知列1 44行

這是我的代碼

class Display extends Journeyholic { 

private $tablename; 
private $recData = array(); 

public function __construct($tablename) { 

    $this->tablename = $tablename; 

    $this->connectToDb(); 
} 

function getAllData() { 
    $sql = "SELECT * FROM `$this->tablename` ORDER BY `id` ASC"; 

    $query = $this->cxn->cxn->prepare($sql); 

    $query->execute(); 
    $data = $query->fetchAll(); 

    return $data; 
} 

function getLastRecordDESC() { 

    $sql = "SELECT * FROM `$this->tablename` ORDER BY `id` DESC LIMIT 1"; 
    $query = $this->cxn->cxn->prepare($sql); 

    $query->execute(); 

    $data = $query->fetch(); 

    return $data; 
} 

function getRecordByID($id) { 

    $id = intval($id); 
$sql = "SELECT * FROM `$this->tablename` WHERE `$id`=$id"; 
    $query = $this->cxn->cxn->prepare($sql); 

    $query->execute(); 

    $this->recData = $query->fetch(); 

    return $this->recData; 

} 


function getAllDataByID($id, $column = "id") { 

    $id = intval($id); 
    $sql = "SELECT * FROM `$this->tablename` WHERE `$column`=$id"; 
    $query = $this->cxn->cxn->prepare($sql); 

    $query->execute(); 

    $data = $query->fetchAll(); 

    return $data; 
} 

繼卡是我的數據庫:

Database

我也試圖改變反引號爲單引號,但它無法正常工作。我只需要有人告訴我什麼是錯的,以及如何解決它?

+0

關懷彰顯線44? –

+0

請注意,爲什麼你要使用準備和執行? –

+1

看起來像你混淆了getAllDataByID的變量順序 –

回答

2

主要問題是在這裏:

"SELECT * FROM `$this->tablename` WHERE `$id`=$id" 

應該是這樣我猜:

"SELECT * FROM `$this->tablename` WHERE `id`= " . $id 

否則查詢將導致類似

"SELECT * FROM `$this->tablename` WHERE `12345`= 12345 
相關問題