所以我不知道在哪裏您取得$id
我跑這一關獲取的所有數據。
我通常會將我的代碼分解爲文件和文件夾,因爲我發現這更容易與其他人合作。
// database connection file (dbc.php)
class Database
{
private $host = "127.0.0.1";
private $db = "";
private $user = "";
private $password = "";
public $conn;
public function dbConnect()
{
$this->conn = null;
try
{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db, $this->user, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
我然後做一個普通的文件,在這裏,您可以存儲所有常用的功能或你的靜態功能
// Common file (common.php)
require_once('dbc.php');
class DBCommon
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnect();
$this->conn = $db;
}
public function run($sql)
{
$stmt = $this->conn->prepare($sql);
return $stmt;
}
}
所以要更多地解釋這一點,你會看到一個功能的run()
這僅僅是節省了繁瑣的$this->conn->prepare
每個查詢。現在你可以運行$this->run()
下一個會是你的類文件..這是你的邏輯是:
// your class file... (class.btc.php)
require_once "common.php";
class BTC extends DBCommon
{
public function getQuery()
{
$stmt = $this->run("SELECT * FROM `btc`");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_OBJ))
{
$rows[] = $row;
}
return $rows;
}
}
自我解釋..
然後你調用方法..比方說index.php
// File you're calling your class from (index.php)
require_once "class.btc.php";
$fetch = new BTC();
$returnData = $fetch->getQuery();
foreach ($returnData as $data)
{
echo
"<p>$data->something</p>
<p>$data->somethingElse</p>";
}
這似乎有點長篇大論,我知道,但時間你會整體保存會幫助!
您可以發佈您從 – Option
調用此類的另一個文件嗎您在您的語句中也容易受到SQL注入的影響 – Option
您準備做什麼?您的類擴展了PDO,但嘗試使用另一個PDO實例。你想做什麼? –