【发布时间】:2018-09-30 19:04:45
【问题描述】:
我在 web 应用中有一个按钮,允许用户请求特殊格式的数字。当用户单击此按钮时,会运行 2 个脚本。第一个功能齐全,查看数字表找到最大数字并将其递增 1。(这不是主键)部分工作的第二个脚本获取当前日期并运行 SQL 查询以获取哪个时期该日期落入。(在这种情况下,期间并不总是等于一整月)我知道这个脚本至少部分工作,因为我可以访问该脚本文件中调用的 $datetoday 变量。但是,它不会从周期表中返回请求的数据。任何人都可以帮助我确定我做错了什么?
<?php
include 'dbh.inc.php';
$datetoday = date("Ymd");
$sql = "SELECT p_num FROM periods where '$datetoday' BETWEEN p_start AND p_end";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../quote.php?quotes=failed_to_write");
exit();
} else {
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_assoc($result);
$pnum = $row;
mysqli_stmt_close($stmt);
}
如果对任何人有帮助,我将我的代码发布到https://github.com/cwilson-vts/Quote-Appliction
【问题讨论】:
-
BETWEEN p_start AND p_end这里的 p_start/p_end 是什么? -
p_start 是周期表中列出周期开始的列名。 p_end 是周期表中的列名,即周期的结束日期。 p_num 是我分配给该范围内日期的期间编号。
-
此条件不正确。
BETWEEN在 field 的值应介于 start 和 and 之间时使用。 -
当我从 phpmyadmin 查询数据库时它可以工作。那么解决方法就是: SELECT p_num from PERIODS where $datetoday > p_end AND $datetoday
-
如果您将 $sql 更改为 Select 1 from period,您的脚本可以正常工作吗?