mysqli(a,b,c,d)->查询(sql)->fetch_assoc()是如何工作的?

我是php和mysqli的新手,并且一直在经历并试图了解这些内置函数中的许多工作原理。我已经阅读了文档和许多教程/示例。


我有类似这样的东西:


$conn = new mysqli(vars); <br />

$sql = "Select * from Users where name ='$name'";


$result = $conn->query($sql);

$pass = result->fetch_assoc()['Pass'];

//check password stuff

这工作正常,但是如果我然后尝试使用它,它将返回null。如果我交换ID和传递的顺序,则id返回并且传递返回空值。$result->fetch_assoc()['ID']


我不明白为什么会这样。我认为(这显然是错误的)是结果应该存储整行(它确实如此),然后当我获取assoc时,我应该只是从行中提取数据。然而,当我获取assoc时,它似乎覆盖了结果。这是怎么回事?


我的工作是为我需要启动会话和存储变量的每个数据点多次调用查询,我知道我可以使用准备好的语句,但我觉得有更好的方法,我错过了它。


有人可以解释一下吗?


宝慕林4294392
浏览 100回答 1
1回答

九州编程

每次调用 时,它都会获取下一行。大概只有一个用户具有特定名称,因此第二次调用的结果将是 。fetch_assoc()fetch_assoc()null存储的价值,之后你可以用它做你想做的事情。$result->fetch_assoc()$user = $result->fetch_assoc();echo $user['ID'];echo $user['Pass'];
打开App,查看更多内容
随时随地看视频慕课网APP