класс базы данных php - PullRequest
       6

класс базы данных php

0 голосов
/ 13 апреля 2011

Я создал класс базы данных в php, но я не могу понять, почему он имеет ошибку:

Fatal error: Using $this when not in object context in C:\xampp\htdocs\test1\Engine\Class\user.php on line 9

вот код

<?php
    class user{
        private  $db_host = 'localhost';
        private $db_user = 'root';
        private $db_password = '123456';
        private $db_name = 'test';

        private function _dbconnect(){
            mysql_connect($this->db_host,  $this->db_user,  $this->db_password) or die('Unable to connect to Database'); // line 9 (error is here)
            @mysql_select_db($this->db_name) or die( "Unable to select database");
        }

        public function login(){
            self::_dbconnect();
            mysql_close();
        }
    }
?>

Ответы [ 4 ]

1 голос
/ 13 апреля 2011

В вашей функции входа в систему вы должны сделать

$this->_dbconnect() 

вместо

self::_dbconnect()

Пока вы делаете это таким образом, вы вызываете метод статически, и поэтому использование $this в методе _dbconnect не работает.

0 голосов
/ 15 апреля 2011

вы все не правы вот решение:

$ user = new user ();

    <?php
        class user{
            private  $db_host = 'localhost';
            private $db_user = 'root';
            private $db_password = '123456';
            private $db_name = 'test';

            private function _dbconnect(){
//***********************************************
                $user = new user();
//***********************************************
                mysql_connect($this->db_host,  $this->db_user,  $this->db_password) or die('Unable to connect to Database'); // line 9 (error is here)
                @mysql_select_db($this->db_name) or die( "Unable to select database");
            }

            public function login(){
                self::_dbconnect();
                mysql_close();
            }
        }
    ?>

теперь все работает отлично

0 голосов
/ 13 апреля 2011

first _dbconnect не является статической функцией, и вы вызываете ее как статическую функцию

изменить себя :: _ dbconnect (); $ this -> _ dbconnect ();

0 голосов
/ 13 апреля 2011

Вы вызываете метод статически

self::_dbconnect();

Статический контекст не имеет объекта, и поэтому $this не определено.

$this->dbconnect();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...