我正在开始 php/MySql,并被要求使用一个类来访问我的数据库。当我将所有代码都放在一个文件中时,我可以让显示正常工作,但是当我尝试从另一个文件调用该类时,我什么也得不到。
这是有效的:
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'testdb';
$myNewConnection = mysqli_connect($host,$username,$password,$dbname);
$query = "SELECT user_name FROM users" or die ("Error..." . mysqli_error($myNewConnection));
// execute the query
$result = $myNewConnection->query($query);
// display output
while($row = mysqli_fetch_array($result)) {
echo $row["user_name"] . "<br>";
}
?>
这是我调用该类的代码:
<?php
include("users.php");
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'testdb';
//initiate the class
$myDB = new MyDB('localhost', 'root', '', 'testdb');
//$myDB = new MyDB($host,$username,$password,$dbname);
?>
这是我的课:
<?php
class MyDB {
public $query;
public $myConnection;
public function _construct($host,$username,$password,$dbname){
// establish the connection
$this->myConnection = mysqli_connect($host,$username,$password,$dbname);
}
public function list_users() {
// create query to list all users
$this->query = "SELECT user_name FROM users" or die ("Error..." . mysqli_error($this->$myNewConnection));
// execute the query
$result = $this->$myConnection->query($this->$query);
// display output
while($row = mysqli_fetch_array($result)) {
echo $row["user_name"] . "<br>";
}
}
}
?>
感谢任何帮助
最佳答案
如下更改此行(从 query
和 myConnection
中删除美元符号):
$result = $this->myConnection->query($this->query);
另外您可能需要使用下面的代码调用您的 list_users
函数(在实例化您的类之后!将您定义的变量而不是它们的实际值传递给构造函数):
$myDB = new MyDB($host,$username,$password,$dbname);
$myDB->list_users();
构造函数也用两个下划线编写,如下所示:
public function __construct
关于php - 尝试使用 php 中的类从 mySQL 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684568/