php:如何使用预处理语句从sql数据库中获取最新的datetime?

时间:2018-06-06 18:51:29

标签: php mysql sql datetime prepared-statement

在下面的代码中,我尝试使用预准备语句从一个充满电子邮件地址(完全相同)和日期时间的sql表中获取最新的日期时间:

 $sql = "SELECT * FROM usertokens WHERE user_mail = ?;";
      //Create a prepared statement
      $stmt = mysqli_stmt_init($conn);
      //prepare prepared statement
      if (!mysqli_stmt_prepare($stmt, $sql)) {
        echo "SQL failed";
      } else {
        //Bind parameters to the placeholder
        mysqli_stmt_bind_param($stmt, "s", $email);
        //run params
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        $resultCheck = mysqli_num_rows($result);
        if ($row = mysqli_fetch_assoc($result)) {       
            $dt = date_create_from_format('Y-m-d H:i:s', $row['user_date']);
             }}

目前它只获取第一个条目。如何选择最新的日期时间(我不想选择最低的条目)?该表如下所示:

:--- user_mail --------- --------- user_date
:----------------------------------------------- <无线电通信/> :--- some@mail.com----2018-06-06 20:28:16
:--- some@mail.com----2018-06-06 20:31:24
:--- some@mail.com----2018-06-06 20:33:44

1 个答案:

答案 0 :(得分:2)

您可以使用ORDER BYLIMIT来实现此目标:

$sql = "SELECT * FROM usertokens WHERE user_mail = ? ORDER BY user_date DESC LIMIT 1;";