首页 > 解决方案 > 将变量设置为常量

问题描述

SQL从表''users'中获取最新条目。$check是存储它的变量,我希望代码以某种方式运行,如果$check get是一个值,它保持不变,即使''users '' 获取任何其他最新条目..

这是我的代码

    <?php
    include 'db.php';
    
    
    $email = isset($_POST['email']);
    $fname = isset($_POST['fname']);
    $user_id = isset($_POST['user_id']);
    
    $sql = "SELECT * FROM users WHERE user_id=(SELECT max(user_id) FROM users)";
    
    
    $result = $conn->query($sql);
    
    while ($row = $result->fetch_assoc()) {   $check=$row['user_id'] ; }
    
    ?>

标签: phpmysqlsqldatabase

解决方案


这里稍微整理一下。您希望使用的查询是获取最后添加的用户,并且不需要子选择,如下面的查询所示。在这里,我们使用了一些假变量,这些变量将来自您对 POSTed 变量的验证。您不需要使用 foreach 循环遍历结果,因为结果直接在 $res 变量中。

<?php

$dbh = new PDO("mysql:host=localhost;dbname=my_database", 'oldboot', 'bigkev123');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// validated variables from POST 
$email = 'kev@example.com';
$fname = 'kevvo';
$user_id = 2;

$stmt = $dbh->prepare("SELECT * FROM users ORDER BY id DESC LIMIT 1");
$stmt->execute();
$res = $stmt->fetch();

echo $res['name']."\n";
$check = $res['user_id'];
?>

推荐阅读