从 PHP 传递日期以从 Microsoft Access 获取数据
Posted
技术标签:
【中文标题】从 PHP 传递日期以从 Microsoft Access 获取数据【英文标题】:Passing dates from PHP to fetch data from Microsoft Access 【发布时间】:2021-08-03 02:06:50 【问题描述】:我正在尝试通过从两个日期选择器中以 from 和 to 的名称传递值来从 Microsoft 访问数据库中获取数据。我正在创建一个 php 网站,但我无法获得 ms 访问权限来返回我想要的数据。
这是我当前的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Date Query</title>
</head>
<body>
<form action="" method="POST">
<label for="from">From :</label>
<input type="date" id="from" name="from">
<label for="to">To :</label>
<input type="date" id="to" name="to">
<button type="submit" name="submit">Submit</button>
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))
$from=$_POST['from'];
$to=$_POST['to'];
$conn = odbc_connect("Ingot_Daily_Report", "", "");
$query = "SELECT * FROM Output_Data WHERE data_Day BETWEEN '$from' AND '$to'";
$sql = odbc_exec($conn, $query);
while($row=odbc_fetch_array($sql))
echo $row['data_Day'];
echo "<br>";
echo $row['KPI_Daily_Target'];
echo "<br><br>";
?>
between 子句没有返回任何数据,但是当我删除 between 子句时,sql 会获取数据库表中所有可用的数据。是否有我应该使用的语法或运算符或日期格式的任何更改来检索正确的数据集?
我的 data_Day 列是短文本格式。我希望返回的数据介于这两个日期之间。
【问题讨论】:
这能回答你的问题吗? select between two dates ms access using php 没有先生/女士。我已经尝试了解决方案,但我的查询返回了空数据。 @flakerimi 【参考方案1】:经过一番艰苦的调查后,我在 SQL 查询中的 php 变量前后添加了 # 符号。这背后的原因是因为 Microsoft Access 似乎只将 # 符号之间的数据识别为日期格式。
之前
$query = "SELECT * FROM Output_Data WHERE data_Day BETWEEN '$from' AND '$to'";
之后
$query = "SELECT * FROM Output_Data WHERE data_Day BETWEEN #$from# AND #$to#";
我使用 date() 和 strtotime() 函数从 datepicker 更改我的日期格式
date("Y/m/d",strtotime(@@php variable with date value stored inside@@));
最后,我将列数据格式更改为短日期下的日期/时间,以使这些代码正常工作。
【讨论】:
以上是关于从 PHP 传递日期以从 Microsoft Access 获取数据的主要内容,如果未能解决你的问题,请参考以下文章
在 STR_TO_DATE 中运行 MySQL REGEXP_SUBSTR 以从文本中提取日期时遇到问题