mysql查询转换为mysqli
问题描述:
我使用下面的查询与服务器设置为Joomla的mysql相当成功,但无法使用joomla Fabrik扩展中的设置作为mysqli运行。mysql查询转换为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的设置使用它。
谢谢。
答
Joomla有它自己的数据库类,所以你不需要使用像mysqli_*
这样的喜欢。沿着以下线使用的东西:由Lodder
答
我已经修改了查询部分根据建议:
$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数据库查询的详细信息,请阅读本。我的最终查询看起来是这样的:
$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
}
$查询变量是什么? –