2012-07-17 3 views
0

php를 사용하여 date_process 필드를 업데이트하려고합니다. MySQL의 필드는 날짜 형식의 필드로, 내 코드는 다음과 같습니다 업데이트 날짜 필드에 PHP를 사용하여

$today = date('Y-m-d'); 
$data =json_decode($_POST['data'], true); 

foreach($data as $value){ 
// update inventory table 
$conn->query("update inventory set cost = {$data[$n]['cost']}, 
csmt = {$data[$n]['csmt']}, 
hold = {$data[$n]['hold']}, 
date_process = $today 
where sku = {$data[$n]['sku']}"); 

다른 필드의 모든

가 제대로 업데이트하는 단지 date_process는 000-00-00을 반환합니다. 나는 다른 글을보고, 내가 올바르게 말할 수있는 것에서 (또는 적어도 나는 생각한다)이 글을 정확하게 포맷하고 있다고 말할 수있다. 아무도 내가 뭘 잘못 지적 할 수 있습니까 ?? 날짜 주위에 따옴표를 추가

+0

를 적어 사용자가 제공 한 POST 데이터 :

같은 것을보십시오. ** 잘못 될 가능성이있는 것은 무엇입니까 **? – tadman

답변

0

시도 :

$conn->query("update inventory set cost = {$data[$n]['cost']}, 
       csmt = {$data[$n]['csmt']}, 
       hold = {$data[$n]['hold']}, 
       date_process = '$today' 
       where sku = {$data[$n]['sku']}"); 
+0

감사합니다. 나는 내가 간과하고 있었던 것이 단순해야만한다는 것을 알았다. – Jim

+0

@Downvoter : 댓글을 씀? –

+0

당신은 SQL을 탈출하려고 시도조차하지 않았습니다. 이 무관심한 태도, 임의로 사용자가 제공 한 데이터를 처리하는 완전히 무모한 접근법은 PHP 애플리케이션이 끊임없이 해킹당하는 이유입니다. 사람들은 모범 사례 인 것처럼 스택 오버플로 응답을 사용합니다. 바르게 해주세요. – tadman

0

$today에 무엇입니까? MySQL이 실제로 얻을 수없는 형식 일 것입니다. SQL 쿼리에 직접 넣어

update inventory set date_process = date_format(curdate(), "%Y-%m-%d"); 
관련 문제