我需要幫助理解將在一種方法中創建的對象(MySQL連接)傳遞給同一類中的另一種方法的正確方法。將數據庫對象從一種方法傳遞到另一種方法的正確方法是什麼
我想創建一個數據庫類,使用構造函數和所有其他方法加載連接,使用此連接執行各自的功能。
在嘗試這樣做,我不斷收到此錯誤:
Fatal error: Call to a member function query() on a non-object in /database.php on line 44
我的代碼:
class database
{
public $mysqli;
public function __construct($database_server, $database_name, $database_user, $database_pass)
{
$mysqli = new mysqli($database_server,$database_user, $database_pass, $database_name);
if ($mysqli->connect_error)
{
die('Connect Error (' . $mysqli->connect_errno . ') '. $mysqli->connect_error);
}
echo "Database connection established successfully.<br>";
return $this->mysqli;
}
public function fetch_data()
{
$query = "select * from payment";
if ($result = $this->mysqli->query($query))
{
// fetch associative array
while ($row = $result->fetch_assoc())
{
printf ("%s (%s)\n", $row["id"], $row["status"]);
}
}
}
}
任何幫助,將不勝感激。謝謝大家。
謝謝您花時間回答mt問題。你的代碼實際上幫助我糾正了我愚蠢的錯誤。另外,如果所有函數都返回一個值。所以我不應該使用 $ this-> mysqli = $ mysqli; return $ this-> mysqli; 這是必需的嗎?這是一種矯枉過正?我想了解正確和正確的方法來做到這一點。 – user1675547
@ user1675547不,構造函數不應返回值。 – xdazz