2016-06-21 5 views
1

RESTful APIを作成しようとしていますが、純粋なクエリでPhalconを通じてMySQLデータベースの行を更新しようとしています。しかし、私はクエリが実行されているという問題にぶつかりますPhalcon status->success()は真を返しますが、私がdbの値を調べるときは前と同じです。Phalcon MySQL UDPATEが動作しません

SQLクエリからmodel->update()を使用するように変更しようとしましたが、同じ問題があります。値country_iduniversity_idの両方の値は整数です。

誰か手掛かりや回避策がありますか?

私のPOST処理関数:

$app->post("/api/user/university/{id:[0-9]+}", function($id) use ($app){ 

    $university_id = $app->request->getPost("university_id"); 

    $country_id = universities::findFirstById($university_id)->country_id; 

    $phpql = "UPDATE users 
       SET university_id=:university_id:, 
        country_id=:country_id: 
       WHERE 
        id=:user_id:"; 

    $status = $app->modelsManager->executeQuery($phpql, array(
     'user_id' => $id, 
     'university_id' => $university_id, 
     'country_id' => $country_id  
    )); 


    $response = new Response(); 

    if($status->success() == true){ 
     $response->setStatusCode(201, "Created"); 


     $response->setJsonContent(
      array(
       'status' => 0 
      ) 
     ); 
    } else { 

     $response->setStatusCode(409, "Conflict"); 

     $errors = array(); 
     foreach ($status->getMessages() as $message) { 
      $errors[] = $message->getMessage(); 
     } 

     $response->setJsonContent(
      array(
       'status' => 'ERROR', 
       'messages' => $errors 
      ) 
     ); 
    } 
    return $response; 
}); 

答えて

0

はPKのuniversity_idとCOUNTRY_ID一部ですか?もしそうなら、ファルコンはプライマリーキーを変更することを許さない。このような動作が必要な場合は、プライマリキーからそれらの列を削除し、ユニークなバリデータを使用します。

+0

これは私の馬鹿馬鹿しいことを申し訳なく思っています。 – Mrnda

関連する問題