我的React应用程序中有两个变量:startDate和endDate,我想根据这些参数从数据库中获取数据,如下所示:
axios.get(`http://localhost/api/date?startDate=${startDate}&endDate=${endDate}`).then((response)
=> {
this.setState(() => ({ data: response.data}));
});
我正在使用MySQL数据库和PHP。
目前我的后端看起来像这样,你可以看到我只是从我的数据库表中选择所有:
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
$app = new \Slim\App;
// Get All Calendar Dates
$app->get('/api/date', function(Request $request, Response $response){
$sql = "SELECT * FROM datescalendar";
try{
// Get DB Object
$db = new db();
// Connect
$db = $db->connect();
$stmt = $db->query($sql);
$dates = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// return $response->withJson($dates);
echo json_encode($dates);
} catch(PDOException $e){
echo '{"error": {"text": '.$e->getMessage().'}';
} });
如何更改我的查询以根据我在React应用程序中的这两个参数从数据库表中进行选择?
答案 0 :(得分:0)
使用BETWEEN
运算符,如:
$sql = "SELECT * FROM `datescalendar` where `date` BETWEEN '{$start_date}' AND '{$end_date}'";
如果字段为Y-m-d
,则日期必须采用datetime
格式,则格式应为Y-m-d H:i:s