(более общий вариант Предупреждение: 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);
Связанные ошибки:
Необходимо перенаправить вывод от второго исполняемого файла Java до некоторого файла. Затем используйте , SendSignal к отправляет "-3" к Вашему второму процессу.
Можно отправить kill -3 <pid>
из Cygwin. Необходимо использовать опции Cygwin ps
найти, что процессы окон тогда просто отправляют сигнал в тот процесс.
Я рекомендую Java VisualVM, распределенный с JDK (jvisualvm.exe). Это может соединиться динамично и получить доступ к потокам и "куче". Я нашел в неоценимом для некоторых проблем.
Вы могли работать jconsole
(включенный с Java 6 SDK), тогда соединяются с Вашим JAVA-приложением. Это покажет Вам каждое выполнение Потока и его отслеживание стека.
В дополнение к использованию упомянутого jconsole / visualvm, вы можете использовать jstack -l
в другом окне командной строки и захватить этот вывод.
jps
.
Оба jstack
и jps
включены в Sun JDK версии 6 и выше.
Вы можете использовать jmap
, чтобы получить дамп любого запущенного процесса, если вы знаете pid
.
Используйте диспетчер задач или монитор ресурсов, чтобы получить идентификатор пользователя
. Затем
jmap -dump:format=b,file=cheap.hprof <pid>
, чтобы получить кучу для этого процесса.