2016-04-04 60 views
0

我有讀取一個功能。該函數將從類別表中只讀取一條記錄,並將值分配給名稱和描述變量。它看起來像這樣:顯示從數據庫中選擇的記錄

require_once('../config/Database.php'); 

class Category { 
    private $conn; 
    private $id; 
    private $name; 
    private $description; 
    private $created; 

public function __construct($db) { 
    $this->conn = $db; 
} 

public function readOne($id) { 
    $stmt = $this->conn->prepare('SELECT name, description FROM categories WHERE id = "'.$id.'"'); 
    $stmt->execute(); 
    $result = $stmt->fetch(PDO::FETCH_ASSOC); 
    $this->name = $result['name']; 
    $this->description = $result['description']; 
} 

我試圖把這種用這樣的:

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
if (isset($_POST['read'], $_POST['id'])) { 

    $cat = new Category($conn); 

    $id = filter_input (INPUT_POST , 'id', FILTER_SANITIZE_NUMBER_INT); 


    echo $cat->readOne($id); 
}} 
?> 
<div> 
<h3>readOne():</h3> 
<form action="" method="post"> 
<label>Category id :</label> 
<input type="text" name="id" id="id" required="required" placeholder="Please Enter Id"/><br /><br /> 
<input type="submit" value="read" name="read"/><br /> 
</div> 

我沒有得到任何錯誤,而且我寫的類ID,然後按後沒什麼happends按鈕,如何解決它?

連接到數據庫:

<?php 

class Database { 

public function getConnection() { 
    $result = false; 
    try { 
     $result = new PDO('mysql:host=localhost;dbname=demo', 'root', ''); 
    } catch(PDOException $e) { } 
    return $result; 
} 
} 
$db = new Database(); 
$conn = $db->getConnection(); 
if (!$conn) { 
die("Error connecting to the database"); 
} 

?> 
+0

您正在迴應readOne的返回值,但沒有返回語句,因此它始終爲空 – cske

回答

1

你readOne函數返回什麼。更改readOne功能是這樣的:

public function readOne($id) { 
    $stmt = $this->conn->prepare('SELECT name, description FROM categories WHERE id = "'.$id.'"'); 
    $stmt->execute(); 
    $result = $stmt->fetch(PDO::FETCH_ASSOC); 
    $this->name = $result['name']; 
    $this->description = $result['description']; 
    return $this->name.$this->description; 
} 

此功能現在返回的名稱和描述字符串。

1

您的readOne()函數不返回任何內容,因爲沒有返回語句。 另請檢查您的$id一定不能留空。

相關問題