2011-01-01 6 views
0

이 코드가 작동하지 않습니다 :(PHP mysql 쿼리 코드가 작동하지 않습니다.

$id = $temp['curchar']; 
$data=strtotime(date('Y-m-d H:i:s'))+30; //+30 seconds to unix time 
mysql_query("UPDATE `chars` SET data='$data' WHERE id='$id'"); 

경고 : mysql_error() : 제공된 인수가 C : \ Program Files \ WebServ \ httpd \ world_1 \ char_info_slow.php의 유효한 MySQL 링크 리소스가 아닙니다. 23

+5

디버깅을 배우는 시간입니다. 친구 야! –

+0

정확히 작동하지 않는 것은 무엇입니까? 생성 된 쿼리를 살펴보고 mysql_error()를 사용하여 오류를 출력하십시오. –

+0

@Pekka 경고 : mysql_error() : 제공된 인수가 23 행의 C : \ Program Files \ WebServ \ httpd \ world_1 \ char_info_slow.php에있는 유효한 MySQL-Link 자원이 아닙니다. – Sonny

답변

1

너무 많은 질문, 당신은 아마 당신이 MySQL로 연결하는 방법

  1. 을 선택하여 시작할 수 있나요?
  2. 이 열 것입니다 data에 입력 하시겠습니까?
  3. $id입니다. 테이블의 모든 레코드와 일치합니까?
  4. 확인하는 방법 일치하는 레코드가 업데이트 되나요?
  5. 계정이 mysql에 연결하여 쓰기를 허용한다면?

PS :

$data=strtotime(date('Y-m-d H:i:s'))+30; <-- wordless ... 

$data = time()+30; 

PPS :

적어도, 당신은 단지 일부 날짜 연산을 수행하는 PHP의 날짜를 생성 할 이유가 없다

$sql = "UPDATE `chars` SET data='$data' WHERE id='$id'"; 
mysql_query($sql) or trigger_error(mysql_error()." in ".$sql); 
+0

1. 연결에 아무런 문제가 없습니다. 2. bigint 이것도 문제가 아닙니다. 3. 예 4. 테스트를 위해 SQLyog를 사용했습니다. – Sonny

+0

$ data = strtotime (date ('Ymd H : i : s ')) + 30; 거기에 아무 문제가 없습니다 – Sonny

+0

$ 데이터 = strtotime (날짜 ('Y-m-d H : i : s')) + 30; – ajreal

1

를 시도해야한다 MySQL. 물론

UPDATE chars 
SET data=DATE_ADD(data, INVERVAL 30 SECOND) 
WHERE id=$id 

이 당신이 data 날짜 시간 유형 필드했습니다 가정 : 그대로 당신은 MySQL의에서이 훨씬 쉽게 할 수 있습니다. 그것이 단지 int 인 경우, 왜 모든 날짜의 수학을 귀찮게하는지, 그냥 data=data+30을하십시오.

마찬가지로 비효율적 인 방식으로 시간 값을 생성합니다. 현재 날짜를 문자열로 형식화하고 해당 문자열을 숫자로 변환 한 다음 30을 추가합니다. 왜 안되니

$data = time() + 30; 

대신에? time은 현재 날짜/시간을 단일 정수 (유닉스 타임 스탬프)로 반환하여 String Land를 통한 왕복을 절약합니다.

+0

UNIX_TIMESTAMP() + 30 나는 말할 것이다. –

관련 문제