DB和php选择随机并传递变量

时间:2014-03-06 16:09:45

标签: database function variables random joomla

我已经为Joomla 3做了一个模块,它的工作但是有些时候没有,这些模块用一个函数提取一个随机用户来自tab会话,然后将变量传递给另一个函数,以检索头像,和id skipe,它的工作但似乎他也随机提取了用户在线的头像,同时我看到这个过程可以绑定很多工作db有一种方法可以减轻,另一个人告诉我可能有安全性问题,我认为由于skipe的id很清楚!

<?php

class modUno
{

public static function due()
{

$db = JFactory::getDBO();   
$query = "SELECT userid AS memTotal FROM #__session ORDER BY RAND() LIMIT 1;";      
$db->setQuery($query);
$result = $db->query();
return $result->fetch_object()->memTotal;
$mysqli->kill($db);
}

public static function tre()
{

$risultato = modUno::due();

$db = JFactory::getDBO();
$query = "SELECT avatar FROM #__comprofiler WHERE id = '{$risultato}'; ";
$db->setQuery($query);
$result = $db->loadResult();
return $result; 
$mysqli->kill($db);
} 

public static function quattro()
{

$risultato = modUno::due();

$db = JFactory::getDBO();
$query = "SELECT cb_skipe FROM #__comprofiler WHERE id= '{$risultato}'; ";
$db->setQuery($query);
$result = $db->loadResult();
return $result; 
$mysqli->kill($db);
} 
}
?>

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

<?php

class modUno {

    public static function due() {

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName('userid') . 'AS' . $db->quoteName('memTotal'))
              ->from($db->quoteName('#__session'))
              ->order('RAND()')
              ->setLimit(1);
        $db->setQuery($query);
        return $db->loadResult();

    }
    public static function tre() {

        $risultato = due();     
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName('avatar'))
              ->from($db->quoteName('#__comprofiler'))
              ->where($db->quoteName('id') . ' = ' . $db->quote($risultato));
        $db->setQuery($query);
        return $db->loadResult();

    } 
    public static function quattro() {

        $risultato = due();     
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName('cb_skipe'))
              ->from($db->quoteName('#__comprofiler'))
              ->where($db->quoteName('id') . ' = ' . $db->quote($risultato));
        $db->setQuery($query);
        return $db->loadResult();

    } 

}
?>

我做了一些修改,但没有测试过,所以如果有效,请告诉我。