Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Catchable fatal error
 
 автор: Assessor   (05.08.2008 в 10:53)   письмо автору
 
 

Добрый день.
Обрисовывыю ситуацию, как могу, есть cms, не все классы пока еще переписаны под php5. При запросе к объекту класса, php5 вызывает функцию типа __toString(), и соотвественно, когда использую ajax ловится и передается дальше ошибка "<b>Catchable fatal error</b>: Object of class ismSQL_mysql could not be converted to string in <b>Z:\home\gornozavodck\www\ajax_im.php</b> on line <b>29</b>". Вопрос в следующем, обойти это как то можно, не ковыряюсь в классах (из-за нехватки времени), и не подавляя ошибок (error_reporting(0);)?

Небольшой пример, чтоб понятней было:

class Ajax_IM
{
    public function __construct($call)
    {
        $this -> json = new JSON_obj();

        switch ($call)
        {
            case 'login':
                echo $this -> login_im();
                break;
        }
    }

    private function login_im()
    {
        global $tbl_imuser, $db;

        // Определяем зарегистрирован пользователь или нет
               // в таком случае, ошибка не создается, если создать как объект класса, по поймается
        $login_check    = Auth :: is_logged();

        if (!$login_check[0])
        {
            return 'invalid';
        }

        $query = "
            UPDATE $tbl_imuser
                SET            is_online        = 1,
                            last_ip            = '" . $_SERVER['REMOTE_ADDR'] . "'
                WHERE        username        = '" . $login_check[0] . "'
                ";
        // Ловится ошибка Catchable fatal error
               $db -> query($query);

        return $db;
    }
}

  Ответить  
 
 автор: cheops   (08.08.2008 в 13:53)   письмо автору
 
   для: Assessor   (05.08.2008 в 10:53)
 

29 строка какой строчке соответствует?

  Ответить  
 
 автор: Assessor   (08.08.2008 в 14:44)   письмо автору
 
   для: cheops   (08.08.2008 в 13:53)
 

в данном случае вот этой:
$db -> query($query);

а если мы, например, строчку: $login_check = Auth :: is_logged();, заменим на $auth = new Auth(); $auth -> is_logged();, то тогда поймаем ошибку в этой строке...

  Ответить  
 
 автор: cheops   (08.08.2008 в 14:50)   письмо автору
 
   для: Assessor   (08.08.2008 в 14:44)
 

Кроме этого класса в файле ничего нет? Такое ощущение, что двойная кавычка где-то не закрыта... но вроде все чисто.

  Ответить  
 
 автор: cheops   (09.08.2008 в 12:00)   письмо автору
 
   для: Assessor   (05.08.2008 в 10:53)
 

А вы же объект $db пытаетесь глобально передать - помоему такие номера не проходят...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования