2017-04-07 85 views
0

我做了一个删除数据库中的对象的功能。当我测试这个功能时,它在localhost上工作,但是它在网站上不起作用。有没有人有任何想法如何解决这个问题? P.S:我用超薄删除功能在本地主机上工作,但不在网上

$app->delete('/places/:id', 'authenticate', function($place_id) use($app) { 
      global $user_id; 

      $db = new DbHandler(); 
      $response = array(); 
      $result = $db->deletePlace($user_id, $place_id); 
      if ($result) { 
       $response["error"] = false; 
       $response["message"] = "Place deleted succesfully"; 
      } else { 

       $response["error"] = true; 
       $response["message"] = "Place failed to delete. Please try again!"; 
      } 
      echoRespnse(200, $response); 
     }); 

public function deletePlace($user_id, $place_id) { 
     $stmt = $this->conn->prepare("DELETE p FROM places p, user_places up WHERE p.id = ? AND up.place_id = p.id AND up.user_id = ?"); 
     $stmt->bind_param("ii", $place_id, $user_id); 
     $stmt->execute(); 
     $num_affected_rows = $stmt->affected_rows; 
     $stmt->close(); 
     return $num_affected_rows > 0; 
    } 
+3

如果它工作在一个地方而不是其他。这可能不是代码。这是权限或其他环境因素。 PHP错误日志通常有助于弄清楚发生了什么。 – mkaatman

+0

看看你的错误日志。 –

回答

0

DELETE p FROM places p似乎是在您的SQL语法错误。

$stmt = $this->conn->prepare(
    "DELETE FROM places p, user_places up WHERE p.id = ? AND up.place_id = p.id AND up.user_id = ?" 
); 

避免错过在未来的这些错误,我建议的错误模式设置为PDO::ERRMODE_EXCEPTION

$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
相关问题