搜索mySQL数据库

时间:2010-06-22 07:19:41

标签: php mysql

我在mySQL数据库中存储了一堆用户ID以及与每个uid相关的其他数据,但是现在我想在程序开头实现一个检查,基本上就是这样,如果用户已经exists,获取该特定用户的指定字段并将其分配给变量,否则返回null。

$query =  mySQL query;

if ($query){
  do this...
}else{
  do that...
};

我假设它看起来像那样?

我对我的语法有些不确定,并且对mySQL知之甚少,这就是为什么我要求提供一些帮助,而不是提前!

3 个答案:

答案 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()中的任何事情,特别是在周期中。