在PHP变量的帮助下从表中选择一个值


select a value from a table with the help of php variable

我使用一个变量在我的php代码命名$user_id。该变量在执行一小段代码脚本后获取一个值。我在数据库中还有一个名为users的表,该表保存user_id和email。如果想从我的数据库中选择电子邮件,当user_id从我的表等于我的变量名为$user_id。我可以这样做吗?这是我的查询:

<?php
//code ...
$user_id=$_GET['user'];    //$user_id gets a value here
//now I want to select email from table users, where user_id is equal to variable $user_id
mysql_query(" SELECT `email` FROM `users` WHERE `user_id`='$user_id' ");
?>

是的,它会工作。我建议你使用pdo或mysqli而不是mysql_*函数。它们已被弃用。

如果由于某些原因你不能切换到其中任何一个;你应该过滤/净化你的查询。

同样,如果user_id是一个数字字段,则不需要将$user_id括在引号中。

你的代码有基本的,它只需要处理,我会添加几个检查。

if(isset($_GET["user"]) && $_GET["user"] != "")  //check there is a value for the user ID
{
    if(is_int($_GET["user"]))
    {    
        $user_id=$_GET["user"]);
        $email="";
        $q=mysql_query("SELECT email FROM users WHERE user_id={$user_id}") or die(mysql_error());
        if(mysql_num_rows($q) > 0)
        {
            while($user=mysql_fetch_assoc($q))
            {
                $email=$user["email"];
            }
        }
        else 
        {
            echo "no users found";
        }
    }
    else 
    {
        echo "Not a valid user ID, please enter numeric value";
    }
}
else
{
     echo "No UserID";
}

hjpotter92建议你使用mysql或pdo来质疑你的数据库,我同意这一点,尽管在学习的同时保持mysql,因为有更多的资源可供学习,然后当有信心转向更新的技术。

请注意:我是基于我认为用户使用PHP和MySQL的经验,而不是基于最现代或最佳实践。

代码应该是:

$email = '';
$res = mysqli_query(" SELECT `email` FROM `users` WHERE `user_id`='$user_id' ");
while ($temp = mysqli_fetch_assoc($res)) {
  $email = $temp['email'];     
}