繁体   English   中英

将当前页面,ID,日期插入到MySQL表中

[英]Insert current page, id, date into mySQL table

在我的Joomla 2.5.14中,我试图将当前的page_id,user_id和date插入到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),日期定义为日期。

在此先感谢您的帮助。

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

?>

希望这可以帮助

我发现您的插入查询存在一些问题。 首先,我相信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')");

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

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

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM