我试图发送一个友谊请求,将用户ID组合在一个表中,但似乎我在某个地方犯了错误。以下是代码片段:
public function sendRequest($user_one_id, $user_two_id, $status, $action_user_id) {
$stmt = $this->conn->prepare("INSERT INTO relationship(user_one_id, user_two_id, status, action_user_id) VALUES (?, ?, ?, ?)");
$stmt->bind_param("iiii", $user_one_id, $user_two_id, $status, $action_user_id);
$result = $stmt->execute(); // HERE IS AN ERROR
$stmt->close();
if (!$result) {
return NULL;
} else {
return TRUE;
}
}
我得到的错误:
Object of class SlimHttpRequest could not be converted to double
编辑:
这就是我调用方法的方式:
$app->post('/send_request', function() use ($app) {
// check for required params
verifyRequiredParams(array('user_one_id', 'user_two_id', 'status', 'action_user_id'));
// reading post params
$user_one_id = $app->request('user_one_id');
$user_two_id = $app->request('user_two_id');
$status = $app->request('status');
$action_user_id = $app->request('action_user_id');
$response = array();
$db = new DbHandler();
$relationship = $db->sendRequest($user_one_id, $user_two_id, $status, $action_user_id);
if ($relationship != NULL) {
$response["error"] = false;
$response["request"]["user_one_id"] = $relationship["user_one_id"];
$response["request"]["user_two_id"] = $relationship["user_two_id"];
$response["request"]["status"] = $relationship["status"];
$response["request"]["action_user_id"] = $relationship["action_user_id"];
} else {
$response["error"] = true;
$response["message"] = "An error occurred. Please try again later.";
}
echoRespnse(200, $response);
});
verifyRequiredParams
函数中发生了什么?在你发布的代码中,我没有看到任何SlimHttpRequest
对象的转换。
$user_one_id = $app->request('user_one_id');
$user_two_id = $app->request('user_two_id');
$status = $app->request('status');
$action_user_id = $app->request('action_user_id');
据我所知,这是您对Slim请求对象执行任何操作的唯一代码行。您能验证您设置的这些变量中的值是否正确吗?像var_dump()
一样,在代码中放一个exit
,看看它说了什么。