我在mySQL数据库中存储了一堆用户ID以及与每个uid相关的其他数据,但是现在我想在程序开头实现一个检查,基本上就是这样,如果用户已经exists,获取该特定用户的指定字段并将其分配给变量,否则返回null。
$query = mySQL query;
if ($query){
do this...
}else{
do that...
};
我假设它看起来像那样?
我对我的语法有些不确定,并且对mySQL知之甚少,这就是为什么我要求提供一些帮助,而不是提前!
答案 0 :(得分:1)
不完全。让查询提取所有需要的字段WHERE uid=:uid
,然后检查通过mysql_num_rows()
等返回的行数。在0上返回null,否则从行中提取值。
答案 1 :(得分:1)
假设您已连接到数据库,这里可以帮助您入门。
$query = "SELECT name, email FROM user WHERE id = $id";
$result = mysql_query($query);
if ($arr = mysql_fetch_assoc($result))
{
// either return $arr or build something else with
// individual column values, something like this
// (would require you to define a User class)
$name = $arr['name'];
$email = $arr['email'];
return new User($name, $email);
}
else
{
return null;
}
好吧,根据要求,在将它们插入sql查询之前,请确保使用任何变量(您没有100%控制权)执行此类操作:
$id = mysql_real_escape_string($id);
但是,我必须说,在我的应用中,用户 ID 来自我信任的来源 - 而不是来自用户输入。
答案 2 :(得分:1)
$query = "SELECT `name`, `email` FROM `user` WHERE `id` = '$id' LIMIT 1";
$sql = mysql_query($query);
$count = mysql_num_rows($sql);
if ($count >= 1)
{
$name = mysql_result($sql,0,'name');
$email = mysql_result($sql,0,'email');
return /*whatever u need to return*/;
}
你也不应该算if()
中的任何事情,特别是在周期中。