我正在尝试使用两个不同的类在PHP中建立数据库连接。我的对象创建出错:
错误:解析错误:语法错误,意外' $ obj' (T_VARIABLE),期待函数(T_FUNCTION)
此行发生错误:$obj = new UserController();
这是我的Connection
课程:
class Connection
{
public $servername = "localhost";
public $username = "root";
public $password = "";
public $dbname = "web-portal";
function database (){
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
return $conn;
} else {
return $conn;
}
}
}
这是我的UserController
课程:
class UserController extends Connection {
$obj = new UserController();
//$obj->database();
function getUser ($userId) {
// Sql query to select record from user table
$sql = "SELECT * FROM User where user_id = ".$userId;
//Excute sql query
$result = $conn->query($sql);
//If record exists
if ($result->num_rows > 0) {
// output data of each row
$row = $result->fetch_assoc();
$conn->close();
return $row;
} else {
//If no record exists return row 0
$row = 0;
return $row;
}
}
}
答案 0 :(得分:0)
一些一般性指导:
UserController
不是Connection
,因此这不是一个好的继承 - UserController
应该从Controller
或类似的东西继承。$result = $conn->query($sql)
您可能需要$this->database()->query($sql)
。无论如何,$conn
都无法使用。您需要执行$obj = new UserController()
但这属于另一个文件,如下所示:
require_once 'Connection.php';
require_once 'UserController.php';
$controller = new UserController();
$row = $controller->getuser(1);
print_r($row);
您可能会发现一种好的方法是在网上完成一些好的教程 - 从长远来看,这可能比在没有指导的项目上挣扎更快。