Выдает ошибку при запросе к базе данных

Главные вкладки

Аватар пользователя Arthur Arthur 12 декабря 2011 в 10:16

Подскажите пожалуйста, почему возникает ошибка при выполнении запроса на выдачу поля из базы

<?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)." При этом и правильный результат тоже выдает.

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 12 декабря 2011 в 12:59

названия таблиц и полей верны?
попробуй

$org_nomer = db_select('field_data_field_organization', 'f')
  ->fields('f', array('field_organization_tid'))
  ->condition('f.entity_id', 1)
  ->execute();

$res=$org_nomer->fetchAssoc();
print_r($res);

Аватар пользователя Arthur Arthur 12 декабря 2011 в 13:04

Выдает сперва "Notice: Undefined index: args в функции DatabaseLog->findCaller() (строка 154 в файле D:\wampdata\apache\localhost\www\drink77\includes\database\log.inc).", а затем
уже результат
Array
(
[field_organization_tid] => 41
).
Я смотрел и другие варианты. Обращался к другим таблицам. Всегда выводит правильный ответ, но и эту ошибку тоже

Аватар пользователя Chyvakoff Chyvakoff 12 декабря 2011 в 13:11

Траблы с функцией debug_backtrace
Может с версией php проблемы?какая версия?
можно конечно подавить ошибку в ядре друпала...
а база данных какая?тип,версия?

Аватар пользователя Arthur Arthur 12 декабря 2011 в 13:22

у меня примерно идентичная сборка drupal 7 есть, на ней всё нормально выводится. Там просто несколько других модулей, материалов и т.д. Может это происходит из-за конфликтации с каким-либо из модулей? первоначально, сделать запрос к базе мне пришлось из-за того, что я использую модуль "computed field". Вот там и пытался написать запрос, чтобы вывести нужные данные в нужном виде, но это приводило к выводу ошибок. Потом пробовал "Execute PHP Code" devel-а. Всё равно ошибки. Использую PHP Version 5.2.13, Версия MySQL - 5.1.42-community.

Аватар пользователя Hinikato Hinikato 29 июля 2012 в 0:26

Похоже ошибка из-за того код вызывается из 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(),
);
}
}
}
?>