몇 가지 SQL 항목이 필요한 몇 가지 함수로 클래스를 만들고 있으며 모든 함수에 대해 새 PDO 개체를 정의하고 싶지는 않지만 모든 함수에서 작동하는 하나가 있습니다.
이것이 내가 지금까지 얻은 것입니다.
<?php
class UserSystem
{
public $mysqlDetails =
[
"host" => "127.0.0.1",
"user" => "",
"pass" => "",
"database" => "",
"table" => ""
];
public $con = new PDO
(
"mysql:host=" . $this->mysqlDetails['host'] .
";dbname=" . $this->mysqlDetails['database'] . ";",
$this->mysqlDetails['user'],
$this->mysqlDetails['pass']
);
이걸 어떻게 작동시킬 수 있습니까? 현재이 오류가 발생 Parse error: syntax error, unexpected 'new' (T_NEW)
합니다.. 이 작업을 수행하는 더 좋은 방법이 있으므로 $con
새 변수를 만들지 않고도 함수 에서 변수를 사용할 수 있습니다 . 내가 제안한 것처럼 함수에 주입하고 싶지 않습니다. IE이 :
<?php
function someFunc ($pdo)
{
$pdo->query("SELECT * FROM `someTable`");
}
컴파일 시간 확인 가능한 상수 값 외에는 클래스 속성을 초기화 할 수 없습니다 . 생성자에서 PDO 개체를 만들어야합니다.
public function __construct() {
$this->con = new PDO(...);
}
더 좋은 방법은 클래스가 PDO 개체를 받아들이고 종속성을 주입 하도록해야합니다.이 클래스보다 더 많은 데이터베이스 연결이 필요하고 동일한 데이터베이스에 다시 연결하고 싶지 않기 때문입니다. 다시 다른 수업에서 :
public function __construct(PDO $con) {
$this->con = $con;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다