“插入”不起作用

时间:2014-04-19 13:55:19

标签: php mysql

查询“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');

表:

enter image description here

3 个答案:

答案 0 :(得分:0)

根据您的架构,

dateint(11),但您在查询中将其括在引号"'.time().'"中。

将其数据类型更改为datetimetimestamp

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