(более общий вариант Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет resource, boolean given )
Ресурсы - это тип в PHP (например, строки, целые числа или объекты). Ресурс является непрозрачным блобом без собственной значимой ценности. Ресурс специфичен и определен определенным набором функций или расширений PHP. Например, расширение Mysql определяет два типа ресурсов :
В модуле MySQL есть два типа ресурсов. Первый - идентификатор ссылки для подключения к базе данных, второй - ресурс, который содержит результат запроса.
Расширение cURL определяет другой два типа ресурсов :
... дескриптор cURL и мультирум cURL.
Когда
var_dump
ed значения выглядят так:$resource = curl_init(); var_dump($resource); resource(1) of type (curl)
Это все большинство ресурсов - это числовой идентификатор (
(1)
) определенного типа ((curl)
).Вы переносите эти ресурсы и передаете их различным функциям, для которых такой ресурс что-то значит. Обычно эти функции выделяют определенные данные в фоновом режиме, а ресурс - это просто ссылка, которую они используют для отслеживания этих данных внутри.
«... ожидает, что параметр 1 будет ресурсом, логическим данная "ошибка, как правило, является результатом непроверенной операции, которая должна была создать ресурс, но вместо этого вернула
false
. Например, функцияfopen
имеет это описание:Возвращаемые значения
Возвращает ресурс указателя файла при успешном выполнении или
FALSE
Таким образом, в этом коде
$fp
будет либоresource(x) of type (stream)
, либоfalse
:$fp = fopen(...);
Если вы не операция
fopen
будет успешной или неудачной и, следовательно, будет ли$fp
действительным ресурсом илиfalse
и передать$fp
другой функции, которая ожидает ресурс, вы можете получить вышеуказанную ошибку:$fp = fopen(...); $data = fread($fp, 1024); Warning: fread() expects parameter 1 to be resource, boolean given
Вам всегда нужно проверять возвращаемое значение функций, которые пытаются выделить ресурс , и может выйти из строя :
$fp = fopen(...); if (!$fp) { trigger_error('Failed to allocate resource'); exit; } $data = fread($fp, 1024);
Связанные ошибки:
Принятие Вы говорите о статической библиотеке, DUMPBIN /SYMBOLS
шоу функции и объекты данных в библиотеке. Если Вы говорите о библиотеке импорта (.lib
, раньше относился к символам, экспортируемым из DLL), то Вы хотите DUMPBIN /EXPORTS
.
Примечание, что для функций, связанных с "C" двоичным интерфейсом, это все еще не получит Вас возвращаемые значения, параметры или соглашение о вызовах. Та информация не кодируется в .lib
вообще; необходимо знать, что загодя (через прототипы в заголовочных файлах, например) для вызова их правильно.
Для функций, связанных с двоичным интерфейсом C++, соглашение о вызовах и аргументы кодируются на экспортируемое название функции (также названный "искажение имени"). DUMPBIN /SYMBOLS
покажет Вам обоим "искаженное" имя функции, а также декодируемый набор параметров.
LIB.EXE является библиотекарем для VS
http://msdn.microsoft.com/en-us/library/7ykb2k5f (По сравнению с 80) .aspx
(как libtool на Unix)
ЭКСПОРТ DUMPBIN / получит большую часть той информации, и совершающая нападки MSDN получит остальных.
Получают один из пакетов Visual Studio; C++