2013-05-06 2 views
1

Я использую Joomla 3.1, а в коде есть ошибка 1054 Неизвестный столбец 'Array' Пожалуйста, помогите мне исправить.MySQL 1054 Неизвестный столбец 'Array'

protected function getOptions() 
{ 
    // Initialize variables. 
    $options = array(); 

    $varname = (string) $this->element['varname']; 
    $project_id = JFactory::getApplication()->input->get($varname); 
    if (is_array($project_id)) { 
     $project_id = $project_id[0]; 
    } 

    if ($project_id) 
    { 
     $db = JFactory::getDbo(); 
     $query = $db->getQuery(true); 

     $query->select('id AS value'); 
     $query->select('CASE LENGTH(name) when 0 then CONCAT('.$db->Quote(JText::_('COM_JOOMLEAGUE_GLOBAL_MATCHDAY_NAME')). ', " ", id) else name END as text '); 
     $query->from('#__joomleague_round '); 
     $query->where('project_id = '.$project_id); 
     $query->order('roundcode'); 
     $db->setQuery($query); 
     $options = $db->loadObjectList(); 
    } 

ответ

2

По-видимому, $project_id[0] по-прежнему содержит массив. Так как я не знаю, откуда приходит $this->element['varname'], трудно сказать, что вы имеете переменные :-)

Также как примечание: вероятно, вы должны отфильтровать входные данные перед тем, как использовать их в запросе, особенно если вы используете его неэкранированным, как в вашем примере. Приведите его в число, используя как минимум (int).

Чтобы сбрасывать содержимое переменной, я могу порекомендовать JDump. Это некоммерческое расширение доступно на JED (http://extensions.joomla.org/extensions/miscellaneous/development/1509).

+0

благодарит за ответ. но для меня это трудный вариант. Я новичок. Если возможно, я предоставил полный файл и все, что вам нужно для устранения ошибки. – skpleh

Смежные вопросы