我正在使用 Slim 框架为服务器数据库构建 RESTful API。我一直在绞尽脑汁试图找出为什么下面的 INSERT 语句没有执行。每次运行它时,我都会收到一条响应“错误:true”和“无法保存声音。请重试。”信息。通过它没有显示在我的数据库中的事实来验证此错误。我的 API 中的其他 INSERT 查询工作正常,当我尝试在 MySQL 中单独运行此插入查询时,它工作正常,但我不明白为什么此功能不起作用!
在我的 DBHandler 文件中:
public function newSound($user_id, $sound, $sound_viz, $latitude, $longitude, $location, $title) {
$response = array();
// Insert query
$stmt = $this->conn->prepare("INSERT INTO sounds (user_id, sound, sound_viz, latitude, longitude, location, title) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssddss", $user_id, $sound, $sound_viz, $latitude, $longitude, $location, $title);
$result = $stmt->execute();
$stmt->close();
// Check for successful insertion
if ($result) {
// Sound successfully inserted
return SOUND_CREATED_SUCCESSFULLY;
} else {
// Failed to post sound
return SOUND_CREATE_FAILED;
}
}
在我的索引文件中:
$app->post('/sounds/', function() use ($app) {
// check for required params
verifyRequiredParams(array('sound', 'sound_viz', 'latitude', 'longitude', 'location','title'));
$response = array();
$sound = $app->request->post('sound');
$sound_viz = $app->request->post('sound_viz');
$latitude = $app->request->post('latitude');
$longitude = $app->request->post('longitude');
$location = $app->request->post('location');
$title = $app->request->post('title');
global $user_id;
$db = new DbHandler();
// creating new sound
$sound_result = $db->newSound($user_id, $sound, $sound_viz, $latitude, $longitude, $location, $title);
if ($sound_result = SOUND_CREATED_SUCCESSFULLY) {
$response["error"] = false;
$response["message"] = "Sound saved successfully.";
$response['sound_id'] = $sound_id;
echoRespnse(201, $response);
} else {
$response["error"] = true;
$response["message"] = "Failed to save sound. Please try again.";
echoRespnse(200, $response);
}
});
我的数据库凭据是正确的,变量 SOUND_CREATED_SUCCESSFULLY 等也是正确的。有什么建议或建议吗?谢谢!
最佳答案
您的比较使用单个等号:
$sound_result = SOUND_CREATED_SUCCESSFULLY
应该是
$sound_result === SOUND_CREATED_SUCCESSFULLY
。
您可以使用PHP CodeSniffer检测到这个问题以及许多类似的问题。 。它是一个非常有用的工具,对任何 PHP 项目都是一个很好的补充。
关于php - Slim 框架 INSERT 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28198309/