2014-04-05 6 views
2

PHP로 mysql을 안전하게 사용하고 있는지 궁금합니다. 이 수업은 내 수업입니다 :MySql + oop PHP - mysql을 어떻게 사용해야합니까?

Doctrine을 사용해야합니까, 아니면 데이터베이스와 comunicate하는 그런 식입니까?

내 코드에 이상한 것이 있기 때문에 묻습니다. I는 임의의 객체 DB 객체에 대한 참조를 포함 vardump 경우, I는 볼 수

[ "_host": "DB"비공개] => 스트링 (9) "로컬 호스트"[ "_user": "DB" ("_db_name": "DB": private) => 문자열 (10)> "문자열": 문자열 (4) "루트" "DBNAME"}

+0

개체를 인쇄하여이 데이터를 보는 것이 정상입니다. 클래스는 일반 확장 래퍼입니다. 보안은 복잡한 질의와 클래스의 "준비"능력 - 가능한 주사를 잡는 등 (간단히 말하면) 제공됩니다. – Rolice

답변

1

당신이 위해서 var_dump에 표시된 DB 설정에 대한 고민하는 경우에 것을 확장 기본 mysqli 클래스를 사용합니다 params로 configs를 보냅니다.

개인적으로 나는 그것에 대해 걱정하지 않을 것입니다. 다른 사람이 귀하의 개체 (아마도 다른 공유 개체)에 액세스 할 수 있다면 그들은 아마도 귀하의 설정을 읽을 수있는 능력을 가지고있을 것입니다. 구성 파일을 가지고있는 유일한 긍정적 인 점은 PHP 코드베이스를 건드리지 않고도 configs를 업데이트 할 수 있다는 것입니다.

이것이 문제가 될만한 이유가 있습니까?

또한 코드 구조가 멋지므로 mysqli에서 추출한 상태로 유지하십시오. 확장으로 전환하지 마십시오. 이렇게하면 PDO 또는 다른 더 우수한 확장 프로그램으로 전환하기로 결정할 때 향후 유연성을 얻을 수 있습니다.

0

귀하의 질문은 "모자 또는 캡을 넣어야합니까?"와 같습니다.
실제로 데이터베이스를 다루는 가장 좋은 방법은 없습니다. 네가 가진 마녀 접근 방식에 달렸어.
SQL 코드를 작성하는 것이 좋으면 솔루션이 좋으며 사용에 적합합니다.
그러나 SQL 쿼리를 작성하고 객체로만 작업하고 싶지 않으면 doctrine을 사용하는 것이 좋습니다.

1

왜 바퀴를 다시 태어 났을 까? query 함수는 거의 mysqli_query이 (가) 당신을 위해 이미하고있는 것을 수행합니다. 이미 만들어하고있는대로 난 그냥 당신이 설정 파일에 이러한 설정을 배치, 내가 제안이 클래스가 하나

class DB extends mysqli { 
    private $_host = 'localhost'; 
    private $_user = 'root'; 
    private $_password = 'root'; 
    private $_db_name = 'DBNAME'; 

    public function __construct() 
    { 
     parent::__construct($this->_host,$this->_user, $this->_password, $this->_db_name); 
    } 
} 
+0

그래, 나도 알아,하지만 이것에 대해 걱정 : [ "_host": "DB": 개인] => 문자열 (9) "로컬 호스트" [ "_user": "DB": 개인] => 문자열 (4) "루트" [ "_password": "DB": 개인] => 문자열 (4) "루트" [ "_db_name": "DB": 개인] => 문자열 (10)> "DBNAME"} – Kwader