2016-04-04 13 views
0

私はreadOne関数を持っています。この関数は、カテゴリテーブルからレコードを1つだけ読み込み、名前と説明変数に値を割り当てます。それは次のようになります。データベースから選択したレコードを表示する

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の戻り値をエコーし​​ていますが、return文はないので、常にnullになります – 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() return文がないため、readOne()関数は何も返しません。 $idも空白にしないでください。

関連する問題