从同一领域获取用户数据

时间:2013-07-15 21:53:26

标签: php mysql

所以,我正在用PHP编写应用程序,我正在尝试根据他们输入的内容检索唯一的用户数据。这是我的代码:

function hello($username123) {
   // Connect to Database //
$host3     = "db"; 
$username3 = "db"; 
$password3 = "db"; 
$db3       = "db";
$con3 = mysqli_connect($host3,$username3,$password3,$db3) or die("Can not connect to Server.");
$student1name; 
$query3 = mysqli_query($con3,"SELECT * FROM 'users' WHERE 'username' = '$username123' and '$student1name' = 'student1'");
return "$student1name";

}

因此,用户输入他们之前注册的用户名,然后我运行一个查询,其中username字段等于username变量(输入),并且student1name变量等于student1字段,其中用户名是与输入的相同。然后我返回student1name变量。但是,当我测试这一切时,返回的是“”。我无法弄清楚问题

3 个答案:

答案 0 :(得分:0)

您没有获取查询结果,请在查询后尝试这样的内容。

$row = mysqli_fetch_array($query3, MYSQLI_ASSOC);

return $row['studentname'];

我假设学生的名字在数据库中名为studentname的列中

答案 1 :(得分:0)

您必须将结果绑定到结果数组中并像这样访问它,这样的事情应该起作用:

return $query3["student1name"];

可能更有效。

如果您只在查询中选择一个变量,那么您只需回显$ query3。

如果您查看准备好的陈述,它也会更有效。

请注意

$student1name

没有做任何事情,因为你永远不会给它一个合适的价值。

答案 2 :(得分:0)

PHP会自动将您在字符串中使用的任何变量替换为该变量的值。例如,如果$ student1name ='foo',那么将$ student1name放在SELECT语句的任何位置,就会输出一个字符串'foo'来代替该变量。就mysqli语句而言,您没有使用PHP值,而是使用文字字符串'foo'。因此,期望你的$ student1name var基于sql语句神奇地改变是不会发生的。

要检索列的值,您需要在执行查询后获取结果行:

if ($row = $query3->fetch_assoc()) {
  return $row["student1"];
}

如果您期望多个结果行,那么您只需要为每一行再次调用fetch_assoc(),直到它不返回任何内容(标记结果行的结尾)。