Проблема класса PHP - PullRequest
       7

Проблема класса PHP

1 голос
/ 25 января 2010

Я работаю со следующим кодом, и при запуске ничего не отображается на экране.

    class ModelBase
{
    public $db_server;
    public $db_user;
    public $db_password;
    static $db_conn;

    public static $DBSERVER="localhost";
    public static $DBUSER="user";
    public static $DBPASSWORD="password";
    public static $DBNAME="test";

    function ModelBase()
    {
        if(!isset(self::$db_conn))
        {
            $this->db_server = ModelBase::$DBSERVER;
            $this->db_user = ModelBase::$DBUSER;
            $this->db_password = ModelBase::$DBPASSWORD;
            self::$db_conn = mysql_connect($this->db_server, $this->db_user, $this->db_password) or die(mysql_error(0)." Error handling database connection. ");
            mysql_select_db(ModelBase::$DBNAME) or die("Couldn't select database.");

            return self::$db_conn;
        }
    }

    static function getConnection() 
    {
        if (!isset(self::$db_conn)) 
        {
            self::$db_conn = mysql_connect($this->db_server, $this->db_user, $this->db_password) or die(mysql_error(0)." Error handling database connection. ");
            mysql_select_db(ModelBase::$DBNAME) or die("Couldn't select database.");
        }
        return self::$db_conn;
    }
}

У меня есть этот класс, который наследует ModelBase.

<?php
include("ModelBase.php");

?>

<?php
    class Lead extends ModelBase
    {
        public $id;
        public $firstname;
        public $lastname;
        public $phone;
        public $email;
        public $notes;

        public Lead()
        {

        }

        public insert()
        {
            $con = ModelBase::getConnection();
            $query = "insert into test (id, firstname, lastname, phone, email, notes) values('','".$this->firstname."','".$this->lastname."','".$this->phone."','".$this->email."','".$this->notes."')";
            $res = mysql_query($query, $con) or die(mysql_error(0)." Error inserting ".$query);

            return($res);
        }
    }
?>

И, наконец, у меня есть тестовый файл:

include("Lead.php");

echo("Creating new lead");

$L = new Lead;

echo("Inserting info");

$L->firstname = "Dev";
$L->lastname = "Test";
$L->phone = "8885552222";
$L->email = "dev@gmail.com";
$L->notes = "Test this screen.";

echo($L->insert());

echo("Done.");

Я получаю следующую ошибку:

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in /var/www/html/joshk/test/Lead.php on line 15

Строка 15 - это функция public Lead(), и я не могу ничего с этим заметить.

Ответы [ 4 ]

4 голосов
/ 25 января 2010

Вам не хватает ключевого слова function. Должно быть

class Lead extends ModelBase
{
    public function Lead()
    {

    }

    public function insert()
    {
        //....
    }
}
3 голосов
/ 25 января 2010

Поскольку вы используете PHP5, вы должны использовать синтаксис конструктора PHP5 :

   public function __construct() { ... }

вместо:

   public Lead() { ... }

(в любом случае отсутствовало ключевое слово function.

2 голосов
/ 25 января 2010

Добавить:

error_reporting(E_ALL);
ini_set('display_errors', 'on');

В начало вашей тестовой страницы.

0 голосов
/ 25 января 2010

И не забудьте избавиться от отчетов об ошибках mysql перед началом производства. Было бы неплохо, если бы ваша система обнаружила какую-либо ошибку в информации базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...