在我的Joomla 2.5.14中,我试图将当前的page_id,user_id和日期插入mySQL表(称为xmb9d_hist)。
这是我使用的代码:
<?php
/* Define $jinput */
$jinput = JFactory::getApplication()->input;
/* Get the current page id */
$page= $jinput->get('id');
/* Get the current user id */
$user =JFactory::getUser();
$usr_id = $user->get('id');
/* Get the current date */
$date =JFactory::getDate();
/* Open a connection */
$link=mysqli_connect('localhost','peter','abc123');
if(!$link){
echo "Não há ligação!";
exit();
};
/* Insert current user id, page id and date in to table xmb9d_hist */
mysqli_query($link, "INSERT INTO `portalge_formacao`.`xmb9d_hist` (`user_id`, `page_id`, `date`) VALUES ($usr_id, $page, $date)");
/* Close connection */
mysqli_close($link);
?>
代码的第一部分工作正常(检索3个变量的值。但是,数据不会插入数据库中,也不会产生错误。
在MySQL表中,user_id和page_id被定义为INT(11),日期被定义为日期。
提前感谢您的帮助。
答案 0 :(得分:1)
使用Joomla时,您需要坚持使用Joomla编码标准,除非他们没有为您提供所需的课程。在尝试之前阅读文档,只要有相关信息。
尝试使用以下内容:
<?php
$db = JFactory::getDbo();
$date = JFactory::getDate();
$user = JFactory::getUser();
$jinput = JFactory::getApplication()->input;
$page= $jinput->get('id');
$usr_id = $user->get('id');
$query = $db->getQuery(true);
$columns = array('user_id', 'page_id', 'date');
$values = array($usr_id, $page, $date);
$query
->insert($db->quoteName('#__hist'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
?>
希望这有帮助
答案 1 :(得分:0)
我看到插入查询存在一些问题。首先,我相信JFactory::getDate()
会返回一个对象,所以为了得到一些你可以插入数据库的东西,你想在它上面做toFormat()
。尝试更改您的行:
$date =JFactory::getDate();
到此:
$date =JFactory::getDate()->toFormat();
由于日期不是整数,您需要转义插入中的字符串,因此请将该行更新为:
mysqli_query($link, "INSERT INTO `portalge_formacao`.`xmb9d_hist` (`user_id`, `page_id`, `date`) VALUES ($usr_id, $page, '$date')");
答案 2 :(得分:0)
你应该使用方法toSql(),它是用于SQL,例如
$date = JFactory::getDate()->toSql();
希望这会有所帮助