Php 删除功能在本地主机上工作,但在Web上不工作
我做了一个函数来删除数据库中的一个对象。当我测试这个函数时,它在localhost上工作,但是在网站上不工作。有人知道如何解决这个问题吗? 附言:我用的是SlimPhp 删除功能在本地主机上工作,但在Web上不工作,php,slim,Php,Slim,我做了一个函数来删除数据库中的一个对象。当我测试这个函数时,它在localhost上工作,但是在网站上不工作。有人知道如何解决这个问题吗? 附言:我用的是Slim $app->delete('/places/:id', 'authenticate', function($place_id) use($app) { global $user_id; $db = new DbHandler(); $response =
$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;
}
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);
如果它在一个地方有效,但在另一个地方无效。这可能不是代码。这是许可或其他环境因素。PHP错误日志通常有助于了解发生了什么。请查看错误日志。