За последние 24 часа нас посетили 97858 программистов и 3004 робота. Сейчас ищет 1391 программист ...

Наследование и mysql_connect

Тема в разделе "PHP для новичков", создана пользователем PetrOFF, 15 июн 2009.

  1. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    Сделал два простых класса один состоит из стандартных функций пхп для работы с базой данных, другой наследует от этого класса. В производном классе запускаю родительский конструктор и выскакивает ошибка:(

    Конструктор родительский.
    Код (Text):
    1. function __construct ($hostname="",$user="",$password="",$db=""){
    2.    $this->link_id= mysql_connect($hostname,$user,$password);
    3.    if(!$this->link_id && $db!="") {
    4.     $this->show_error("Error connect Mysql or wrong table name.");
    5.  
    6.     }else{
    7.  
    8.         if(!mysql_select_db($db, $this->link_id)) echo"error";
    9.  
    10.     }
    11.  
    12.  
    13. }
     
  2. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Вот ведь и говорит что
    Пароль не правильный для этого пользователя!
     
  3. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    Хм, во-первых пароля нет как такового по умолчанию, а во-вторых если конструктор запустить из самого родителя, с теми же настройками, то все работает. Где же проблема?
     
  4. kostyl

    kostyl Guest

    Код покажи, как работает, а как нет. Тут не телепаты собрались.
     
  5. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    Пардон

    Класс родительский
    Код (Text):
    1.  
    2. <?
    3. class db{
    4. private $link_id;
    5. private $query_id;
    6.  
    7. function __construct ($hostname="",$user="",$password="",$db=""){
    8.    $this->link_id= mysql_connect($hostname,$user,$password);
    9.    if(!$this->link_id && $db!="") {
    10.     $this->show_error("Error connect Mysql or wrong table name.");
    11.  
    12.     }else{
    13.  
    14.         if(!mysql_select_db($db, $this->link_id)) echo"error";
    15.  
    16.     }
    17.  
    18.  
    19. }
    20.  
    21. function query($string=""){
    22.     $this->query_id=mysql_query($string,$this->link_id);
    23.  
    24.    return $this->query_id;
    25. }
    26.  
    27. function result_array($query_id=""){
    28.       if ( $query_id != "" )
    29.         $this->query_id=$query_id;
    30.          $res=array(0);
    31.        for($i=0;$i<$this->total_rows($this->query_id);$i++){
    32.        array_push($res ,mysql_fetch_assoc($this->query_id));
    33.  
    34.  
    35.  
    36.  }
    37.   return $res;
    38.                                     }
    39.  
    40. function result_object($query_id=""){
    41.       if ( $query_id != "" )
    42.         $this->query_id=$query_id;
    43.          $res=array(0);
    44.        for($i=0;$i<$this->total_rows($this->query_id);$i++){
    45.        array_push($res ,mysql_fetch_object($this->query_id));
    46.  
    47.  
    48.  
    49.  }
    50.   return $res;
    51.                                     }
    52.  
    53.  
    54. function show_error($mes=""){
    55.  
    56.     echo $mes;
    57. }
    58. function  total_rows($query_id){
    59.       if ( $query_id != "" )
    60.         $this->query_id=$query_id;
    61.  $total_rows=mysql_num_rows($this->query_id);
    62. return $total_rows;
    63.  
    64. }
    65. function close(){
    66.     return mysql_close($this->link_id);
    67. }
    68. function retur_ins_id(){
    69.  return mysql_insert_id($this->link_id);
    70. }
    71.  
    72. }?>
    Класс производный
    Код (Text):
    1. <?php
    2.   class tree extends db{
    3.  
    4.     function __construct(){
    5.      parent::__construct();
    6.  
    7.  
    8.         }
    9.  
    10.     function build_tree(){
    11.  
    12.  
    13.  
    14.  
    15.     }
    16.   }
    17. ?>
    index файл
    Код (Text):
    1. <?
    2. include"db.class.php";
    3. include"bufer.class.php";
    4. include"parser.class.php";
    5. include"tree.class.php";
    6. $html= new buffer();
    7. $tree= new tree("localhost","root","","test");
    8. $data['editor']= "The world is mine";
    9. $html->view("templates/index.tlp", $data);
    10.  
    11.  
    12.  
    13.  
    14. ?>
    Error
    Код (Text):
    1. Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\db\www\db.class.php on line 7
    2.  
    3. Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in Z:\home\db\www\db.class.php on line 13
     
  6. А где ты передаешь параметры в родительский конструктор?
     
  7. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    обана только сейчас понял :)
    Код (Text):
    1. function __construct($hostname="",$user="",$password="",$db=""){
    2.      parent::__construct($hostname,$user,$password,$db);
    Всем спасибо, как всегда ответ находишь сам после того как выложишь код на форуме :)