클래스로 데이터베이스 연결을 만들려고했습니다.클래스로 db 연결을 만들고 PHP 및 Mysqli의 prepare 문에 사용하십시오.
DB.class.php
class DB {
protected $servername = 'localhost';
protected $username = 'root';
protected $password = '';
protected $dbname = 'my_db';
protected $conn ;
public function connection(){
$connection = new mysqli($this->servername,$this->username,$this->password,$this->dbname);
if (mysqli_connect_errno()){
echo 'db error'.mysqli_connect_error();
exit();
}
$this->conn = $connection;
return $this->conn;
}
}
이 클래스에는 어떤 문제가없는 것 같습니다. 나는 query.php
include 'DB.class.php';
$connection = new DB();
$connection->connect($connection);
$stmt = $connection->prepare("INSERT INTO MyGuests (name, gender, email,
town) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $name, $gender, $email, $town);
$name = 'ex_name';
$gender = 'female';
$email = '[email protected]';
$town = 'colombo';
$stmt->execute();
$stmt->close();
$connection->close();
또 다른 파일에이 클래스를 사용하고자하지만 보여주는이 오류 메시지가 계속 :
Fatal error: Call to undefined method DB::connect()
내가이 오류 메시지를 피하기 위해 클래스 내부에이 쿼리를 만들어야을? 그렇다면 어떻게 할 수 있습니까? 누군가 나를 도울 수 있습니까!
오류를 보여줍니다 그대로 '연결'해야합니다. 당신은 당신의 핸들을 리턴해야하는 것처럼 보이는 'connection'이라는 메소드를 가지고 있으므로 $ connection = new DB() -> connection(); – TommyBs
기존 연결을 사용하여 연결하려는 이유가 무엇입니까? 또한 당신은 당신이'connection()'을 호출 할 때마다 새로운 데이터베이스 연결을 만들 수 있다는 것을 알고 있습니까? 이 1k 번 작업을 수행하면 시간이 지연되고 서버를 종료 할 수 있습니다. – bassxzero
자신 만의'DB' 클래스를 만들 특별한 이유가 있습니까? mysqli 클래스에 대해 어떤 기능도 제공하지 않는 것 같기 때문에, 단지 그것을 사용하는 것이 훨씬 더 쉬울 것이다. 또는 PDO. – jeroen