显示从数据库中选择的记录
Displaying selected record from a database
我有 readOne 功能。此函数将只读取类别 table 中的一条记录,并将值分配给名称和描述变量。它看起来像这样:
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 并按下按钮后也没有任何反应,如何解决?
与数据库的连接:
<?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");
}
?>
你的 readOne 函数return什么都没有。像这样更改 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;
}
这个函数 return 现在是一个带有名称和描述的字符串。
您的 readOne()
函数不会 return 任何东西,因为没有 return 语句。
另外请检查您的 $id
不能为空。
我有 readOne 功能。此函数将只读取类别 table 中的一条记录,并将值分配给名称和描述变量。它看起来像这样:
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 并按下按钮后也没有任何反应,如何解决?
与数据库的连接:
<?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");
}
?>
你的 readOne 函数return什么都没有。像这样更改 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;
}
这个函数 return 现在是一个带有名称和描述的字符串。
您的 readOne()
函数不会 return 任何东西,因为没有 return 语句。
另外请检查您的 $id
不能为空。