0

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

在此先感谢您的帮助。

4

3 回答 3

2

使用 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);

?>

希望这可以帮助

于 2013-08-23T13:52:39.347 回答
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')");
于 2013-08-23T13:44:48.637 回答
0

你应该使用 toSql() 方法,它用于 SQL 例如

$date = JFactory::getDate()->toSql();

希望这可以帮助

于 2015-10-01T11:03:20.043 回答