根据 url 中的日期显示数据


Display data based on date in url

我正在尝试回显url中定义的特定用户的某些详细信息(如下所示:search_result.php?姓氏=Doe&date_of_birth=1964-04-12

$lname = mysqli_real_escape_string($_GET['lastname']); 
$dob = mysqli_real_escape_string($_GET['date_of_birth']); 
$result= mysql_query("SELECT * FROM qfever WHERE lastname = '$lname' AND date_of_birth = '$dob'");
while($row = mysql_fetch_array($result)) {
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$date_of_birth = $row['date_of_birth'];
$employee_number = $row['employee_number'];
}
echo $firstname;
echo $lastname;
echo $date_of_birth;
echo $employee_number;

我可以回显它从 url 中获取的内容,但它不会从数据库中回显用户的详细信息。问题可能是日期的格式吗?我在数据库中的date_of_birth列当前设置为 TEXT,但 HTML 输入类型设置为 DATE。

代码中有多个错误:

  • 首先,您不会转义 mysql 查询中馈送的变量。您至少应该使用mysql_real_escape_string。
  • 您在全局$_GET中得到了错误的字段,并且也执行了错误的请求。
  • 您忘记将变量放在引号之间,我相信这使请求失败。
  • 您将所有$res[X]映射到$X。有什么意义?
  • 您在循环外打印$firstname,因此只能获得最后一个。

更改查询

  SELECT * FROM qfever WHERE lastname = '$lname' AND date_of_birth = '$dob'

正如@Jeremiah Winsley在评论中所建议的那样:

首先,你混合了mysqli和mysql。其次,您在任一变体中都有错误的_real_escape_string语法。

操作问题在于他们在mysqli_mysql_之间混淆。 他们对问题的编辑证实了这一点:

解决了,我混合了mysqli_和mysql_**