gpt4 book ai didi

php - 如何访问在另一个 PHP 类中启动的数据库连接?

转载 作者:行者123 更新时间:2023-11-29 13:16:28 24 4
gpt4 key购买 nike

我是 PHP 新手,我正在尝试为我的网站开发一个登录系统。我已经成功登录到我的网站,但现在我正在尝试整理我的代码并将数据库连接代码放在一个类中,并让其他 php 类访问一个数据库连接类。目前,我似乎无法连接到我的数据库。我尝试通过添加相关错误报告代码来查找错误,但没有输出任何内容。

如果有人可以检查我的代码并看看我哪里出了问题,我将不胜感激!

这是我的 php 类,用于检查用户名和密码 - checklogin.php

<?php

require_once(__DIR__. "/DBConnection.php");

class checklogin {

public $count=0;

public function checklogin() {

ob_start();

$db = DBConnection()->get_connection();


$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$encrypt_password=md5($mypassword);

$sql="SELECT id FROM members WHERE username='$myusername' and password='$encrypt_password'";
$result=mysql_query($sql);
$row=mysql_fetch_row($result);

$this->count=mysql_num_rows($result);

if($this->count==1){
session_start();
$_SESSION['ID']=$row[0];
header("location:login_success.php");
} else {
$this->error();
}
ob_end_flush();

}
}

?>

我试图实现数据库连接并设置实例的类 - DBConnection.php

<?php

class DBConnection{

private static $instance;

private function __construct(){
$host=".....";
$username="....";
$password=".....";
$db_name=".....";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
}

public static function get_connection(){
if(empty (self::$instance)) self::$instance = new DBConnection;
return self::$instance;
}
}

?>

最佳答案

您可以调用 static method ,像这样:

$db = DBConnection::get_connection();

这将为您提供数据库连接的实例。

关于php - 如何访问在另一个 PHP 类中启动的数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com