我想在我的站点中包含一个用户类,以便用户登录和注册。
我已经完成了所有部分的工作,除了在课堂上包括我的连接,实际上,课堂上有它自己的config.php,但是我不能使用它。
我的网站可以正常运行并且可以正常查询,但是类配置不允许类外查询。
因此,我需要在课堂中加入自己的连接,以用作课堂外的$stmt=$pdo->prepare
查询。
我尝试了很多变化,并尽了最大的努力使它起作用,但是每次尝试都失败了。
需要您的帮助。
这是我的config.php
Class Dbh{
private $servername;
private $username;
private $password;
private $dbname;
private $charset;
protected function Connect(){
$this->servername = "localhost";
$this->username = "localhost";
$this->password = "localhost";
$this->dbname = "localhost";
$this->charset = "UTF-8";
try {
$dsn = "mysql:host=".$this->servername.";dbname=".$this->dbname.";charset=".$this->charset;
$pdo = new PDO($dsn, $this->username, $this->password);
return $pdo;
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
return "Connection Failed!: " . $e->getMessage();
die();
}
}
}
$user = new User();
$user->dbConnect(dsn, username, password);
这是我的课程连接部分
class User{
/** @var object $pdo Copy of PDO connection */
private $pdo;
/** @var object of the logged in user */
private $user;
/** @var string error msg */
private $msg;
/** @var int number of permitted wrong login attemps */
private $permitedAttemps = 5;
/**
* Connection init function
* @param string $conString DB connection string.
* @param string $user DB user.
* @param string $pass DB password.
*
* @return bool Returns connection success.
*/
public function dbConnect($dsn, $username, $password){
if(session_status() === PHP_SESSION_ACTIVE){
try {
$pdo = new PDO($dsn, $username, $password);
$this->pdo = $pdo;
return true;
}catch(PDOException $e) {
$this->msg = 'Connection did not work out!';
return false;
}
}else{
$this->msg = 'Session did not start.';
return false;
}
}
}
答案 0 :(得分:0)
更改行
Class Dbh{
成为
class Dbh extends User{
,并且两个类都在同一个文件中,那么您现在就可以访问两个类中的函数。
如果它们不在同一个文件中,请添加第一个这样的文件:
include 'userClassFile.php';
class Dbh extends User{
//Your code here
}
我已经用一个非常简短的例子来尝试了这一点:
<?php
class classOne{
function funcOne(){
echo "Output";
}
}
class classTwo extends classOne{
function funcTwo(){
$this->funcOne();
}
}
$c2 = new classTwo();
$c2->funcTwo();
我希望看到Output
,也看到Output