За последние 24 часа нас посетили 22842 программиста и 1258 роботов. Сейчас ищут 744 программиста ...

Что Я делаю не так?

Тема в разделе "MySQL", создана пользователем weldp, 12 авг 2007.

  1. weldp

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

    С нами с:
    6 июл 2007
    Сообщения:
    6
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. class db{
    4. public $host;
    5. public $user;
    6. public $passw;
    7. public $db;
    8.  
    9. public $query;
    10. protected $link;
    11. protected $res;
    12. public $num;
    13. public $ar;
    14.     public function  init($HOST,$USER,$PASSW,$DB)
    15.     {
    16.         self::set_host($HOST);
    17.         self::set_user($USER);
    18.         self::set_passw($PASSW);
    19.         self::set_db($DB);
    20.         $this->query=NULL;
    21.         $this->ar=array();
    22.         $this->link=@mysql_connect($this->host,$this->user, $this->passw)or die(ERR1);
    23.         @mysql_select_db($this->db,$this->link) or die(ERR2);
    24.     }
    25.     public function  query($q){
    26.         $this->query=@mysql_query($q,$this->link)or die(ERR3.mysql_error());
    27.     }
    28.     public function num_rows(){
    29.         $this->num=mysql_num_rows($this->query);
    30.         return $this->num;
    31.     }
    32.     public function  fetch_row(){
    33.         $this->res=mysql_fetch_row($this->query);
    34.     }
    35.     public function  fetch_array(){
    36.         $this->res=mysql_fetch_array($this->query);
    37.         return $this->res;
    38.     }
    39. }
    40.  
    41.  
    42.     $obj1=new db();
    43.     $obj=new db();
    44.    
    45.     $obj->init(HOST,USER,PASSW,DB_BEZLIM_NEW);
    46.         $obj1->init(HOST,USER,PASSW,DB);
    47.         $q="SELECT `framed_ip` FROM users";
    48.         $obj1->query($q);
    49.     $numstart=NUMSTART;
    50.     $n=$numstart;
    51.     $n1=$n++;
    52.     echo "num rows".$obj1->num_rows()."\n";
    53.     echo "OBJ1:".$obj1->host." ".$obj1->user." ".$obj1->passw." ".$obj1->db."\n";
    54.     echo "OBJ:".$obj->host." ".$obj->user." ".$obj->passw." ".$obj->db." \n";
    55.         for ($i=0; $i<$obj1->num_rows();$i++)
    56.             {
    57.                 $row=$obj1->fetch_array();
    58.                 $ip=$row['framed_ip'];
    59.             for ($q=0; $q<24;$q++)
    60.             {
    61.             $q="INSERT INTO `def` VALUES ('".$ip."', 0, '".$n."','".$n1."', 0, 'Kbit/s', 0, 'Kbit/s', '".$q."', 'y');";
    62.                     $obj->query($q);
    63.            
    64.             }
    65.         $n++;  
    66.         $n1=$n++;
    67.             }
    68. ?>
    69.  
    Вывод:
    BJ1: freenibs
    OBJ: bezlimit2
    can't do queryTable 'freenibs.def' doesn't exist

    Как показала практика mysql использует базу не ту что указал при mysql_select_db(DB,$LINK)
    Отсюда Я не могу два запроса выполнить - как это поменять?

    [sql]mysql> use freenibs;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> SHOW TABLES;
    +--------------------+
    | Tables_in_freenibs |
    +--------------------+
    | actions |
    | blacklist |
    | holidays |
    | packets |
    | prices |
    | users |
    +--------------------+
    6 rows in set (0.00 sec)

    mysql> use bezlimit2;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> SHOW TABLES;
    +---------------------+
    | Tables_in_bezlimit2 |
    +---------------------+
    | day |
    | def |
    +---------------------+
    2 rows in set (0.00 sec)[/sql]
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Не используете BB коды.[/quote]
     
  3. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    ага, расстрелять... Следующий такой пост полетит к блондинкам.
     
  4. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Hight
    ага, аж читать лень
     
  5. weldp

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

    С нами с:
    6 июл 2007
    Сообщения:
    6
    Симпатии:
    0
    пофиксил...
    ЗЫ:
    Я так думаю что неправильно пользуюсь mysql_select_db в функции init() класа...
    То есть по идеи должно быть 2-а обьекта с разными подключениями, а на кпрактике от этого кода получается как бы 2-е копии одинаковых...
     
  6. weldp

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

    С нами с:
    6 июл 2007
    Сообщения:
    6
    Симпатии:
    0
    Затык на $obj->query($q);
     
  7. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    weldp
    используйте в начале <?php
    и в конце
    ?>
     
  8. weldp

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

    С нами с:
    6 июл 2007
    Сообщения:
    6
    Симпатии:
    0
  9. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    Код (Text):
    1. #          self::set_host($HOST);
    2. #          self::set_user($USER);
    3. #          self::set_passw($PASSW);
    4. #          self::set_db($DB);
    где потерялась реализация этих методов?
     
  10. weldp

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

    С нами с:
    6 июл 2007
    Сообщения:
    6
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3.     public function set_host($host){$this->host=$host;}
    4.     public function set_user($user){$this->user=$user;}
    5.     public function set_passw($passw){$this->passw=$passw;}
    6.     public function set_db($db){$this->db=$db;}
    7. ?>