简体   繁体   English

使用Joomla语法查询MySQL

[英]Query MySQL using Joomla syntax

The following query is returning the result I expected: 以下查询返回了我期望的结果:

$link=mysqli_connect('localhost','user','pass');
    if(!$link){
    echo "No connection!";
    exit();
    }

    if (!mysqli_set_charset($link, 'utf8'))
    {
      echo 'Unable to set database connection encoding.';
      exit();
    }

    if(!mysqli_select_db($link, 'database')){
        echo "No database";
    exit();
};

$res = $link->query("SELECT rules FROM xmb9d_viewlevels WHERE id=10");

while ($row = $res->fetch_array()) {
    echo " cenas = " . $row['rules'] . "\n";
};

But, since I'm using Joomla 2.5.16 and I'm trying to keep its syntax, I tried: 但是,由于我使用的是Joomla 2.5.16,并且试图保留其语法,因此我尝试:

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

$res = $db->query("SELECT rules FROM #__viewlevels WHERE id=10");

while ($row = $res->fetch_assoc()) {
    echo " cenas = " . $row['rules'] . "\n";
};

This isn't working. 这不起作用。 It is only displaying the text " cenas =". 它仅显示文本“ cenas =“。

What is wrong with this code? 此代码有什么问题?

Try the following: 请尝试以下操作:

$db = JFactory::getDbo();

$query = $db->getQuery(true);

$query->select($db->quoteName('rules'))
 ->from($db->quoteName('#__viewlevels'))
 ->where($db->quoteName('id')." = ".$db->quote('10'));

$db->setQuery($query);

$results = $db->loadObjectList();

foreach ( $results as $result) {
   echo " cenas = " . $result->rules;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM