2012-03-01 6 views
0

안녕하세요 여러분, 제 업데이트 기능이 내 데이터베이스를 업데이트하지 않는 이유를 알아 내려고 노력하고 있습니다. 여기 PHP 또는 MySQL 데이터베이스 업데이트 안 함

함수이다

public function update() { 

    if (is_null($this->id)) triger_error ("DailyMenuItem::update(): Attempt to update a DailyMenuItem object that does not have its ID property set.", E_USER_ERROR); 

    $conn = new PDO (DB_DSN, DB_USERNAME, DB_PASSWORD); 
    $sql = "UPDATE daily_menu SET date=FROM_UNIXTIME(:date), name=:name, description=:description, price=:price WHERE id = :id"; 
    $st = $conn->prepare ($sql); 
    $st->bindValue(":name", $this->name, PDO::PARAM_STR); 
    $st->bindValue(":description", $this->description, PDO::PARAM_STR); 
    $st->bindValue(":price", $this->price, PDO::PARAM_INT); 
    $st->bindValue(":date", $this->date, PDO::PARAM_INT); 
    $st->execute(); 
    $conn = null; 
} 

이 목적이

DailyMenuItem 개체 ( [ID]를 포함 => 4 [이름] => 훈제 닭 바게뜨 [설명] => 염소 치즈와 함께 [가격] => 13 [날짜] => 1330585200 )

오류 메시지가 표시되지 않습니다. 단지 아무것도 업데이트하지 않습니다. 제발 도와주세요 :)

+0

ID를 바인딩 했습니까? –

+3

bindValue 메서드를 보면 where 절에 대한 값이없는 것으로 나타납니다 (WHERE id = : id) – user466764

+0

$ result = $ st-> execute(); 업데이트 결과를 얻으려면 –

답변

3

당신은 ID를 바인딩하지 않는 것.

문제가 될 수 있습니다.

0

모든 업데이트 및 삭제 쿼리에는 쿼리를 수행하는 기본 키 값이 필요합니다. 여기에 귀하의 예제에서 당신은 쿼리에서 ID를 언급했지만 아래에 바인드가 없으므로 id 쿼리는 업데이트 할 행을 알 수 없습니다.

관련 문제