将当前页面,id,日期插入mySQL表

时间:2013-08-23 13:33:09

标签: php mysql joomla

在我的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),日期被定义为日期。

提前感谢您的帮助。

3 个答案:

答案 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();

希望这会有所帮助