PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: И заодно Supplied argument is not a valid <какой-нибудь там> resource
Champion Супермодератор
Отправлено: 25 Марта, 2010 - 19:29:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4353
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Есть в PHP оператор ->, при помощи которого мы обращаемся к свойствам и вызываем методы объекта. Вот если этот оператор применить не к объекту, то как раз с такой ошибкой мы и столкнемся.

Если эта ошибка появилась перед вашими глазами, значит, сейчас в той строке, номер которой написан в тексте сообщения об ошибке, не объект. Даже если нам очень хочется, чтоб там был объект и мы всё для этого сделали - ошибка есть и это не объект.

Значит, надо посмотреть, почему это не объект. Возможны вот такие причины:
- Опечатка в имени переменной;
- Между созданием объекта и его использованием чьи-то злые руки написали что-то типа $obj = 5, после чего $obj перестал быть объектом и мы это забыли.
- Третья причина возникает, когда мы не сами создаем объект оператором new, а ссылку на объект возвращает какая-то функция. Причем она не обязательно написанная вами, а может быть это какая-то функция используемого фреймворка или чего-то там еще.
Вот эти функции, при невыполнении некоторых условий, возвращают false или что-то там еще, а не объект. Значит, нужно разбираться уже с этой функцией и смотреть, почему она так себя ведет. Делается это с помощью нехитрых приемов отладки, описанных тут и тут.

Вот.
 
 Top
Champion Супермодератор
Отправлено: 28 Марта, 2010 - 09:51:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4353
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Похожая ошибка Supplied argument is not a valid <какой-нибудь там> resource. Мы тоже вроде бы уверены, что передаем в функцию переменную нужного типа Ресурс, а на самом деле эта переменная почему-то содержит значение другого типа.
причины те же: опечатались, затерли, неудачно получили значение из функции.

Конкретно про борьбу с ресурсом-указателем на результат запроса MySQL тут.
 
 Top
JustUserR
Отправлено: 28 Марта, 2010 - 14:22:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 8721
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Champion пишет:
Причины те же: опечатались, затерли, неудачно получили значение из функции.
Неправильный SQL-запрос с синтаксической ошибкой и попытка обрабоать его ресурс через mysql_fetch_* или mysql_result


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
EuGen Администратор
Отправлено: 01 Апреля, 2010 - 11:07:14
Post Id


Профессионал


Покинул форум
Сообщений всего: 9098
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




И на этот счет есть соответствующая тема в разделе Баз Данных


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Champion Супермодератор
Отправлено: 01 Апреля, 2010 - 11:19:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4353
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ну про ресурс не только к базам данных относится. Много функций с разными ресурсами работают.
 
 Top
JustUserR
Отправлено: 02 Апреля, 2010 - 17:32:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 8721
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Champion пишет:
Много функций с разными ресурсами работают.
В таком случае можно добавить ошибку Call to undefined function когда пытаются вызвать функцию из неподключенного модуля Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Champion Супермодератор
Отправлено: 02 Апреля, 2010 - 18:49:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 4353
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Да на самом деле одной статьи про отладку достаточно))
 
 Top
Comatose
Отправлено: 24 Мая, 2011 - 12:38:01
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2011  
Откуда: Киев


Помог: 0 раз(а)




А если ну очень злые руки написали где-то __call() или __get() ? Улыбка


-----
Вы начинаете читать это предложение, которое заканчиваете читать.
 
 Top
yaskin
Отправлено: 26 Сентября, 2011 - 21:19:18
Post Id



Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




не извращайтесь. Поменяйте кодировку файла на utf8 и радуйтесь. Скорее всего при редактировании сохранили файл не в той кодировке


-----
uWebMasterov.ru
 
 Top
LIME
Отправлено: 26 Сентября, 2011 - 21:32:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 9835
Дата рег-ции: Нояб. 2010  


Помог: 288 раз(а)





а если у вас рука сломана пополам приложите подорожник Радость
скорее всего вы порезались когда брились

(Отредактировано автором: 26 Сентября, 2011 - 21:35:32)



-----
вау
я кажется понял жастЮзера!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB