查询“INSERT into”不起作用,并且不返回错误。 (所有代码都正常,但查询不起作用)
public static function setActivity($activity, $id_user, $extra)
{
switch($activity)
{
case 'inscriptionRaffle':
// inscriptionRaffle $extra = ID SORTEO
$query = db::query('SELECT * FROM '.TABLE_RAFFLES.' WHERE id = "'.db::escape($extra).'"');
$array = db::fetch_assoc($query);
$en_title = 'Has been enrolled in the raffle of <a href="?module=raffles&id='.$array['id'].'">'.$array['name'].'</a>';
$es_title = 'Se ha inscrito en el sorteo de <a href="?module=raffles&id='.$array['id'].'">'.$array['name'].'</a>';
db::query('INSERT INTO '.TABLE_ACTIVITY.' (id_user, es_title, en_title, date) VALUES ("'.$id_user.'","'.$es_title.'","'.$en_title.'","'.time().'")');
break;
case 'register':
break;
}
}
常数:
define('TABLE_ACTIVITY', TABLE_PREFIX . 'users_activity');
表:
答案 0 :(得分:0)
date
是int(11)
,但您在查询中将其括在引号"'.time().'"
中。
将其数据类型更改为datetime
或timestamp
。
答案 1 :(得分:0)
为什么您不能为DATETIME
字段使用date
的预定义数据类型?更改表格并将日期字段更改为DATETIME
。
除非您自己定义,否则我认为任何time()
语言都没有定义SQL
的任何功能。
所以你的查询应该是这样的:
db::query('INSERT INTO '.TABLE_ACTIVITY.' (id_user, es_title, en_title, date) VALUES ("'.$id_user.'","'.$es_title.'","'.$en_title.'","'.NOW().'")');
NOW()
是预定义的函数,用于在使用date and time
时检索当前MYSQL
。
如果您使用MSSQL
,则需要使用CURRENT_TIMESTAMP()
答案 2 :(得分:0)
尝试以下查询,它可以正常工作
db::query('INSERT INTO '.TABLE_ACTIVITY.' set id_user="'.$id_user.'",es_title="'.$es_title.'",en_title="'.$en_title.'",date="'.NOW().'"');