Подскажите пожалуйста, почему возникает ошибка при выполнении запроса на выдачу поля из базы
<?php
$org_nomer = db_select('field_data_field_organization', 'f')
->fields('f', array('field_organization_tid'))
->condition('f.entity_id', 1)
->execute()
->fetchField();
echo $org_nomer;?>
Ошибка "Notice: Undefined index: args в функции DatabaseLog->findCaller() (строка 154 в файле D:\wampdata\apache\localhost\www\rnk77\includes\database\log.inc)." При этом и правильный результат тоже выдает.
Комментарии
Попробуй вместо echo print_r() написать. А так запрос написан верно..
тоже самое(
названия таблиц и полей верны?
попробуй
->fields('f', array('field_organization_tid'))
->condition('f.entity_id', 1)
->execute();
$res=$org_nomer->fetchAssoc();
print_r($res);
Выдает сперва "Notice: Undefined index: args в функции DatabaseLog->findCaller() (строка 154 в файле D:\wampdata\apache\localhost\www\drink77\includes\database\log.inc).", а затем
уже результат
Array
(
[field_organization_tid] => 41
).
Я смотрел и другие варианты. Обращался к другим таблицам. Всегда выводит правильный ответ, но и эту ошибку тоже
Траблы с функцией debug_backtrace
Может с версией php проблемы?какая версия?
можно конечно подавить ошибку в ядре друпала...
а база данных какая?тип,версия?
у меня примерно идентичная сборка drupal 7 есть, на ней всё нормально выводится. Там просто несколько других модулей, материалов и т.д. Может это происходит из-за конфликтации с каким-либо из модулей? первоначально, сделать запрос к базе мне пришлось из-за того, что я использую модуль "computed field". Вот там и пытался написать запрос, чтобы вывести нужные данные в нужном виде, но это приводило к выводу ошибок. Потом пробовал "Execute PHP Code" devel-а. Всё равно ошибки. Использую PHP Version 5.2.13, Версия MySQL - 5.1.42-community.
Похоже ошибка из-за того код вызывается из eval() в результате нет инфы об аргументах, я пофиксил так:
<?php
public function findCaller() {
$stack = debug_backtrace();
$stack_count = count($stack);
for ($i = 0; $i < $stack_count; ++$i) {
if (strpos($stack[$i]['file'], 'includes' . DIRECTORY_SEPARATOR . 'database') === FALSE) {
$next_index = $i + 1;
return array(
'file' => $stack[$i]['file'],
'line' => $stack[$i]['line'],
'function' => $stack[$next_index]['function'],
'class' => isset($stack[$next_index]['class']) ? $stack[$next_index]['class'] : NULL,
'type' => isset($stack[$next_index]['type']) ? $stack[$next_index]['type'] : NULL,
'args' => isset($stack[$next_index]['args']) ? $stack[$next_index]['args'] : array(),
);
}
}
}
?>