我有一个表格,可以收集大量基本信息(姓名、电子邮件等),然后将其发布到数据库中。在该表单上,我使用 php 日期函数插入“日”、“月”和“年”数据库列,以便它显示提交表单数据的日期。
我想将其输出到一个表中(这样我就可以在不登录数据库的情况下检查它),并且我希望该表默认为当前日期。我以为这样的东西会起作用,但事实并非如此:
$query="SELECT * FROM form_data WHERE day='echo date("d");' AND month='echo date("m");' AND year='echo date("Y");'";
最终,我希望有一些显示表格的日期选择框,这样我就可以选择我想要的任何日期,提交并将相关数据返回到表格中。但第一步只是让表格默认显示今天的当前数据。
如果有人能提供帮助,我们将不胜感激。
最佳答案
为了使线程完整,我将继续建议mysqli::prepare
。正如所述here它准备查询并返回它的句柄。
目的是防止SQL注入(inject),降低查询解析开销,提高代码可读性。总而言之,使用prepare是更好的做法。
这就是你如何做到的:
$database = new mysqli('localhost', 'username', 'password', 'database');
if ($stmt = $database->prepare("SELECT * FROM form_data WHERE day=? AND month=? AND year=?")) {
$stmt->bind_param('sss', date("d"), date("m"), date("Y"));
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
}
$database->close();
在上面的代码中,$result
包含从数据库读取的行。
这是 PDO 版本:
$stmt = $database->prepare("SELECT * FROM form_data WHERE day=? AND month=? AND year=?")
$stmt->execute(array("".date("d"), "".date("m"), "".date("Y")));
关于php - MySQL WHERE 基于 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031814/