Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы и MySQL 
V
    Опции темы
gta4kv
Дата 5.5.2007, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



Всем привет...


Есть у меня есть такой класс :

Код

        class mysql {        
    function query ($query) {
        $error = false;
        if($query == ""){
            // some errors
            $error = true;
        }
        
        if($error == false){
        $query = mysql_real_escape_string($query);
        return (mysql_query($query) or die(mysql_error()));    
        }
    
    }
    

        function result ($query) {
        $error = false;
        
        if($query == "") {
            $error=true;
        }
        
        if($error == false ) {
            return (mysql_fetch_object($query));
        }
    }
   }


Я например делаю query :
Код

$test = $mysql->query("SELECT * FROM `test`");


Но заюзать result на такую переменную не получаеца :

Код

$mysql->result($test);


Он не "распознает" это как mysql_query

Как быть?  smile 

Это сообщение отредактировал(а) gta4kv - 5.5.2007, 15:21
PM MAIL   Вверх
vasac
Дата 5.5.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 3
Всего: 36



Цитата

 $query = mysql_real_escape_string($query);

что это? зачем? куда? для чего?

Цитата(gta4kv @  5.5.2007,  15:20 Найти цитируемый пост)
Как быть?

Выкинуть этот бессмысленный класс и пользоваться напрямую функциями mysql_* либо написать что-то более вразумительное.
PM WWW   Вверх
gta4kv
Дата 5.5.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



Цитата(vasac @ 5.5.2007,  15:25)
что это? зачем? куда? для чего?


Мм. ну это уберём..

Цитата

Выкинуть этот бессмысленный класс и пользоваться напрямую функциями mysql_* либо написать что-то более вразумительное.


Нет. Так не пройдёт.  smile

Добавлено через 26 секунд
Вообщем хотелось услышать совет а не поучения...  smile 
PM MAIL   Вверх
check
Дата 5.5.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 1
Всего: 23



Код

    function query ($query) {
        $error = false;
        if($query == ""){
            // some errors
            $error = true;
        }
        
        if(!$error){ 
        $query = mysql_real_escape_string($query);
        $result = mysql_query($query) or die(mysql_error());
        return $result;    
        }
    
    }


Добавлено через 1 минуту и 47 секунд
Код

return (mysql_query($query) or die(mysql_error())); 

Тут у тебя возвращается не resulset, а результат логического выражения, по-моему.

Добавлено через 5 минут и 19 секунд
То есть вот что у тебя было
Код

return ($result or die(mysql_error()));  


Добавлено через 9 минут и 42 секунды
mysql_real_escape_string как раз выкидывать не в коем случае не надо,  а вот в самом классе смысла действительно не наблюдается.
PM MAIL   Вверх
gta4kv
Дата 5.5.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



В чём фигня, мне сразу не нужно получать результат..
Да и то что прям в классе это присваеваетсо переменной - тоже не пойдёт.
PM MAIL   Вверх
check
Дата 5.5.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 1
Всего: 23



А что же ты собираешься передавать в mysql_fetch_object?
 
PM MAIL   Вверх
gta4kv
Дата 5.5.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



Код

$test = $mysql->query("SELECT * FROM `test`");
$mysql->result($test);


Мне надо реализовать что бы мона было так юзать... 
PM MAIL   Вверх
check
Дата 5.5.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 1
Всего: 23



Я только что это именно так и заюзал,  только перед этими двумя строчками добавил ещё две
Код

mysql_connect($server,$user,$passwd);
mysql_select_db($db);

PM MAIL   Вверх
gta4kv
Дата 5.5.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



Во первых, ты мне соединил в одну функцию.. что абсолютно не надо..

Во вторых :

Код

 $query = mysql_real_escape_string($query);
  $result = mysql_query($query) or die(mysql_error());


Мне не надо что бы это переменным присваиволось. 
PM MAIL   Вверх
Glip
Дата 5.5.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



а ничего что оно будет обрабатывать $mysql->query(false) как запрос?
ну и result(false) тоже

Это сообщение отредактировал(а) Glip - 5.5.2007, 18:34


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 5.5.2007, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



в этом и фигня.. надо сделать что бы норм было))
PM MAIL   Вверх
check
Дата 5.5.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 1
Всего: 23



Цитата(gta4kv @  5.5.2007,  16:45 Найти цитируемый пост)
Мне не надо что бы это переменным присваиволось.  


Ну если тебе эта переменная так мешает жить
Код

return !mysql_errno() ? mysql_query($query) : exit();  


Только вот так 
Код

$result = mysql_query($query) or die(mysql_error());
return $result;  

У тебя бы по крайней мере выводилось сообщение об ошибке, если она есть.

А чтобы ты не говорил что я что-то там объединил в одну функцию -
всё художество целиком:
Код

class mysql {        
    function query ($query) {
        $error = false;
        if($query == ""){
            // some errors
            $error = true;
        }
       
        if(!$error){ 
        $query = mysql_real_escape_string($query);
        return !mysql_errno() ? mysql_query($query) : exit();   
      
        }
    
    }
    
        function result ($query) {
        $error = false;
        
        if($query == "") {
            $error=true;
        }
        
        if($error == false ) {
            return mysql_fetch_object($query);
        }
    }
   }

mysql_connect("localhost", "root", "");
mysql_select_db("gb");
$mysql = new mysql();
$test = $mysql->query("SELECT * FROM`users`"); 
while ($row = $mysql->result($test)) {
   echo $row->mail;
}








Это сообщение отредактировал(а) check - 5.5.2007, 19:15
PM MAIL   Вверх
Glip
Дата 5.5.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



мне кажется что данную конкретную конструкцию:
Код

        $error = false;
        
        if($query == "") {
            $error=true;
        }
        
        if($error == false ) {


можно смело менять на:
Код

    if ($query) {



--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.5.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91





Код

$test = $mysql->query(" SELECT * FROM `users` ");

$test2 = $mysql->result($test);

var_dump($test2); // = bool(false)


но самое странное что : 

Код

$test = mysql_query(" SELECT * FROM `users` ");

$test2 = mysql_fetch_object($test);

var_dump($test2); // = ТОЖЕ bool(false)



Причем запрос правильный.... 100%
PM MAIL   Вверх
Glip
Дата 6.5.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



а 
Код

var_dump(mysql_fetch_ assoc($test));

что даёт?
и что при этом в $test ? (тоже var_dump)

Это сообщение отредактировал(а) Glip - 6.5.2007, 10:02


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.