php - MySQL WHERE 基于 PHP 变量

标签 php mysql sql dynamic

我有一个表格,可以收集大量基本信息(姓名、电子邮件等),然后将其发布到数据库中。在该表单上,我使用 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/

相关文章:

c++ - 可以连接到 MySQL 数据库的非 GPL 库?

python - 无法使用 sqlite3 Python 模块正确执行 sql 脚本

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

mysql - SQL:不是特定年份

mysql - 客户、供应商及其员工

mysql - 聚合数据时在选择查询中使用单引号?

PHP 无法创建具有命名空间的类的实例

Javascript 和 HTML5 Geolocation - 如何存储位置?

php - 有没有办法记录用户的离线事件并在他们在线时更新它们?

php - 插入查询不适用于 MySQL