2013-08-06 3 views
-1

내가 달성하고자하는 것은 고객의 가입으로 30 일 추가하는 것입니다업데이트 데이터베이스 쿼리는

SQL 구문에 오류가 있습니다. 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 1 행의 USR_PAID = '1'및 USR_EXPIRATION = DATE (DATE_ADD (NOW(), INTERVAL 0 DAY)) 값 '부근' 문 : REPLACE CLIENTS에 USR_PAID = '1'과 USR_EXPIRATION은 = DATE (NOW DATE_ADD ((), INTERVAL 0 DAY)) 값 ('USR_EXPIRATION', '09 -05-2013 ')는

나는 당신을 말할해야 어디 동일한 기능을 사용하여 웹 사이트의 다른 부분에서 db를 업데이트하고 올바르게 작동합니다.

또한 다음 쿼리는 현재 작업하고 나에게 지불 한 모든 클라이언트를 제공하고 만료된다

$request = "select * from CLIENTS where USR_PAID = '1' and USR_EXPIRATION = DATE(DATE_ADD(NOW(), INTERVAL 0 DAY))"; 
$result = $conn->query($request, G_NORMDB); 

나는 그것이 내가 알아낼 수 없습니다 만 구문 오류 것 같다.

+0

지금 USR_PAID = '1'에 문자를 추가하는 중 USR_PAID = 1 또는 USR_PAID = true가 아니어야합니까? – Tdelang

답변

1

부수적으로, 나는 이것이 어쨌든 작동하지 않을 것이라고 생각합니다. replace into을 사용하여 열을 선택적으로 변경할 수 없습니다. 모든 열에 대한

값은 문을 교체 에 지정된 값에서 가져옵니다 :

다음은 매뉴얼의 설명이다. 누락 된 열은 INSERT 에서처럼 기본값 인 값으로 설정됩니다. 의 값을 현재 행으로 참조하고 새 행에서 사용할 수 없습니다.

그래서 전체 사용자 행을 포함합니다.

$ q를 = "UPDATE CLIENTS SET USR_EXPIRATION = '$ 인해'`USR_PAID = '1'AND USR_EXPIRATION은 = DATE (NOW DATE_ADD ((), 간격 :

나는 그냥이 쿼리를 사용하여 쉽게 생각 0 일)) "; $ update = $ conn-> update ($ q, $ db);

전혀 작동하지 않으면 어떻게 작동하는지 알려주세요.

+0

대단히 감사합니다. Mostafa, 이제 작동합니다. 내가 PHP로 매우 초보자라는 것을 이해할 수 있습니다! ! 도와 주셔서 감사합니다. – user926652

+0

전혀 문제 없음 :) 계속 작업하고 있으면 거기에있을 것입니다. 저는 수년 동안 PHP로 작업 해 왔으며 여전히 초보자라고 생각합니다.) –

-1

어떤 오류 메시지에서 매우 조언을 다음에 대해 - 구문이 잘못 교체 귀하의 REPLACE query?

+0

나는 이미 여러 번했는데 내가 웹 사이트에서 쿼리를 여러 번 바꾸어 사용한다고 말한대로 항상 일하고있다. – user926652

1

의 구문에 MySQL의 설명서를 확인 할 수 있습니다. VALUES, 그 다음에.

$set = "REPLACE into CLIENTS (the two columns here) VALUES ('USR_EXPIRATION','" . $due . "') where USR_PAID = '1' and USR_EXPIRATION = DATE(DATE_ADD(NOW(), INTERVAL 0 DAY))"; 

자세한 내용은 더 enter link description here 최대 읽기.

편집 : 문서에서 어디에도 보이지 않는지 궁금했습니다. this answer에 따르면 REPLACE에는 WHERE 절이 없습니다. 대신 UPDATE를 사용하십시오.