-1

我在 Joomla 中将以下查询与服务器设置为 mysql 一起使用非常成功,但无法使用 joomla Fabrik 扩展中的 mysqli 设置运行它。

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$sql = mysql_query("SELECT first_name,mobile FROM students WHERE
DAY(dob) = DAY(CURDATE()) AND
MONTH(dob) = MONTH(CURDATE())");

while($row = mysql_fetch_array($sql)) {
//mycode- to - send SMS
    }

我已经修改了上面的mysqli代码,如下所示,但没有成功:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$sql = mysqli_query("SELECT first_name,mobile FROM students WHERE
DAY(dob) = DAY(CURDATE()) AND
MONTH(dob) = MONTH(CURDATE())");

while($row = mysqli_fetch_array($sql)) {
//mycode- to - send SMS
    }

我需要在上述查询中进行哪些其他更改,以便我可以使用 mysqli 设置来使用它。

谢谢。

4

2 回答 2

2

Joomla 有它自己的数据库类,所以你不需要使用mysqli_*. 使用以下内容:

$db = JFactory::getDbo();

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

$query->select($db->quoteName(array('first_name', 'mobile')));
->from($db->quoteName('#__students'))
->where($db->quoteName('DAY(dob) = DAY(CURDATE())' AND 'MONTH(dob) = MONTH(CURDATE())'));

$db->setQuery($query);

$results = $db->loadObjectList();

foreach ($results as $result) {
    your code here
}

有关 Joomla 数据库查询的更多信息,请阅读:

http://docs.joomla.org/Selecting_data_using_JDatabase

于 2013-10-13T12:11:21.173 回答
0

我根据Lodder的建议部分修改了查询。我的最终查询如下所示:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT SUBSTRING_INDEX(name,' ',1)first_name,mobile FROM students WHERE
DAY(dob) = DAY(CURDATE()) AND
MONTH(dob) = MONTH(CURDATE())";

$db->setQuery($query);
$results = $db->loadObjectList();


foreach ($results as $result) {
$mobile = $result->mobile;
$name = $result->first_name; 

//further code
}
于 2013-10-13T21:02:52.223 回答