2014-04-19 4 views
0

"INSERT into"쿼리가 작동하지 않으며 오류를 반환하지 않습니다. (모든 코드가 제대로 작동하지만 쿼리가 작동하지 않습니다)"INSERT into"into not working

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

+2

작동합니다. 대답은 분명 할 것입니다. –

답변

0

date이 스키마에 따라 같은 int(11)입니다, 하지만 당신은 쿼리에 "'.time().'" 따옴표로 묶습니다.

datetime 또는 timestamp으로 데이터 유형을 변경하십시오.

0

date 필드에 미리 정의 된 데이터 유형 DATETIME을 사용할 수없는 이유는 무엇입니까? 표를 변경하고 날짜 필드를 DATETIME으로 변경하십시오.

자신이 정의하지 않은 한 어떤 SQL 언어에도 time()으로 정의 된 함수가 있다고 생각하지 않습니다.

그래서 쿼리는 다음과 같이해야합니다 :

db::query('INSERT INTO '.TABLE_ACTIVITY.' (id_user, es_title, en_title, date) VALUES ("'.$id_user.'","'.$es_title.'","'.$en_title.'","'.NOW().'")'); 

NOW()MYSQL를 사용하는 경우 현재 date and time를 검색 할 수있는 미리 정의 된 함수입니다.

당신이 MSSQL를 사용하는 경우는 다음 쿼리 아래 CURRENT_TIMESTAMP()

+0

'time()'함수가 SQL에서 호출되지 않습니다. 그 부분은 괜찮아. 또한,'now()'는 MySQL 함수이며 PHP에서 호출합니다. –

+0

Dude, datetime을 삽입하는 동안 mysql에'now()'함수가 있지만, submit 버튼을 누를 때 폼 자체에서 datetime을 삽입하려면 어떻게합니까 ?? 그 때 무엇을 사용할 수 있을까요 ?? –

+0

예 있습니다. 하지만, PHP에서 사용하고 있습니다. MySQL에서'NOW()'가 호출되고 있음을 의미합니다. –

0

시도를 사용해야합니다, 그것은 질문을 편집하고 변수 치환 후, 쿼리 문자열을 인쇄하십시오

db::query('INSERT INTO '.TABLE_ACTIVITY.' set id_user="'.$id_user.'",es_title="'.$es_title.'",en_title="'.$en_title.'",date="'.NOW().'"');