ФорумПрограммированиеPHP для идиотов → Ошибка...толи в классе...толи в функции

Ошибка...толи в классе...толи в функции

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 8:50

    Вообщем есть 3-и файла.

    - functiondb.php туда поместил функции для работы с БД
    - db.php класс
    - test.php тестирование класса DB

    Предсавлю код

    functiondb.php
    <?php
    /**********************************************/
    function open()
    {
    /*Выбрать соответствующую функцию соединения*/
    if($this->persistent)
    {
    $func = 'mysql_pconnect';
    }
    else
    {
    $func = 'mysql_connect';
    }
    /*Соединиться с сервером MySQL*/
    $this->conn = $func($this->host,$this->user,$this->password);
    if(!$this->conn)
    {
    return false;
    }
    /*Выбрать запрошенную БД*/
    if(@!mysql_select_db($this->database,$this->conn))
    {
    return false;
    }else{
    return true;
    }
    }
    /**********************************************/
    function close()
    {
    return(@mysql_close($this->conn));
    }
    /**********************************************/
    function error()
    {
    return (mysql_error());
    }
    /**********************************************/
    function query($sql)
    {
    $this->result = @mysql_query($sql,$this->conn);
    return($this->conn != false);
    }
    /**********************************************/
    function affectedRows()
    {
    return(@mysql_affected_rows($this->conn));
    }
    /**********************************************/
    function numRows()
    {
    return(@mysql_num_rows($this->result));
    }
    /**********************************************/
    function fetchObject()
    {
    return(@mysql_fetch_object($this->result,MYSQL_ASSOC));
    }
    /**********************************************/
    function fetchArray()
    {
    return(@mysql_fetch_array($this->result,MYSQL_NUM));
    }
    /**********************************************/
    function fetchAssoc()
    {
    return(@mysql_fetch_assoc($this->result));
    }
    /**********************************************/
    function freeResult()
    {
    return(@mysql_free_result($this->result));
    }
    ?>


    db.php

    <?php
    class DB
    {
    /*Параметры соединения*/
    var $host = '';
    var $user = '';
    var $password = '';
    var $database = '';
    var $persistent = false;

    /*Дескриптор соединения с базой данных*/
    var $conn = NULL;

    function DB($host,$user,$password,$database,$persistent = false)
    {
    $this->host = $host;
    $this->user = $user;
    $this->password = $password;
    $this->database = $database;
    $this->persistent = $persistent;
    }
    }

    ?>


    test.php

    <?php
    include "db.php";
    include "functiondb.php";
    $db = new DB("localhost","root","","medical");

    if(!$db->open())
    {
    die($db->error());
    }

    if(!$db->query("SELECT * FROM test"))
    {
    die($db->error());
    }
    while($row = $db->fetchArray())
    {
    echo "ID - ".$row->id." <br />
    TEXT = ".$row->text."";
    }
    $db->freeResult();
    $db->close();
    ?>


    Ошибка выпадает
    Fatal error: Call to undefined function: open() in z:\home\light.p\www\test.php on line 7

    if(!$db->open())
    {


    Непонятно.
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 9:02, спустя 11 минут 33 секунды

    в классе DB нифига нету open()
    все умрут, а я изумруд
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 9:03, спустя 1 минуту 6 секунд

    нафиг оно тебе такое все здоровое и непонятное? =)
    простенький класс и самому можно накатать
    все умрут, а я изумруд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 9:09, спустя 6 минут 36 секунд

    Я первый раз с ними работаю.

    нафиг оно тебе такое все здоровое и непонятное?

    Книжу решил почитать…там вот умные мужики пишут…мол сцуко так делай
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 9:12, спустя 3 минуты 6 секунд

    в классе DB нифига нету open()


    Непонял.
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 9:18, спустя 5 минут 25 секунд

    functiondb.php туда поместил функции для работы с БД

    тупо вырезал из классы и в отдельный файл?
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 9:45, спустя 27 минут 29 секунд

    class DB {
    /* ……………………… */
    function DB() {


    }
    }


    это старо…

    применяй вместо объявления функции с тем же именем что и класс вот эту функцию __construct() //конструктор класса

    И вообще Паш почитай книгу Котерова "PHP5 в подлинике", классная книга, мне она помогла очень в свое время :)
    А то ты читаеш "умных мужиков" а они ИМХО неправы…
    adw/0
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 10:06, спустя 21 минуту 4 секунды

    Всем спасибо.Я наркоман.

    зы…а книга Котерова у меня эта есть.Стоит почитать.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 10:24, спустя 17 минут 35 секунд

    Не сочтите за рекламу Котерова :)
    Эта книга всегда со мной :)



    Всего-то 60 килобайт :)
    adw/0
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 10:41, спустя 16 минут 36 секунд


    Не сочтите за рекламу Котерова :)
    Эта книга всегда со мной :)



    Всего-то 60 килобайт :)


    У вас там в армии пхп преподавали? o_O
    Сильно…

    Я думал мол после армии приходят и брутальными становятся =)…и не до компьютерной самодеятельности)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 11:47, спустя 1 час 6 минут 39 секунд

    Я просто чуть помешан, комп тож сам собрал из того что было :) (из того что снял у юзеров, жизнь заставила :) Да и весь стеллаж с монами и системниками мое :) приносили на ремонт :)

    Ночами ремонтировал и винды ставил им… а сам фрю пересобирал и кодил понемногу, даже 2 сайта им написал :) один хтмл-ка, другой каталог шин и дисков!

    Днем был как и все….
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!