0

我在我的 php 代码中使用了一个名为 $user_id 的变量。此变量在执行一段简短的代码脚本后取一个值。我的数据库中还有一个名为 users 的表,该表包含 user_id 和电子邮件。如果想从我的数据库中选择电子邮件,当我的表中的 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' ");

?>
4

3 回答 3

1

是的,它会起作用。我建议您使用而不是mysql_*函数。它们已被弃用。

如果由于某些原因您无法切换到其中任何一个;您应该过滤/清理您的查询。

此外,如果user_id是数字字段,则不需要$user_id用引号引起来。

于 2013-05-18T19:49:05.357 回答
0

您的代码具有基础知识,只需要处理,我会添加一些检查。

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 建议您使用 mysqli 或 pdo 来质疑您的数据库,我会同意这一点,尽管在学习时继续使用 mysql,因为有更多可用于学习的资源,然后当有信心转向更新的技术时。

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

于 2013-05-18T19:58:24.363 回答
-2

代码应该是:

$email = '';
$res = mysqli_query(" SELECT `email` FROM `users` WHERE `user_id`='$user_id' ");

while ($temp = mysqli_fetch_assoc($res)) {
  $email = $temp['email'];     
}
于 2013-05-18T19:47:20.980 回答