我正在处理好友列表功能,我无法弄清楚如何正确接收这些值。
我的代码如下所示:
$getuid = $mysqli->prepare("SELECT `uid` FROM `users` WHERE name = ? OR name = ?");
$getuid->bind_param("ss", $user, $friend);
$getuid->execute();
$getuid->bind_result($uid);
$getuid->fetch();
$getuid->close();
$resetpass = $mysqli->prepare("INSERT INTO `friendlist` SET `friend1`=?, `friend2`=?, `accept`=0");
$resetpass->bind_param("ss", $uid[0], $uid[1]);
使用第一个查询,我得到两个uid值。我想在第二个查询中使用它们。似乎bind_result
无效,无论是数组还是在bind_result
中使用两个值。我怎么能用mysqli做到这一点。我不能使用get_result
,因为我使用的是PHP 5.2。
有人能帮助我吗?
答案 0 :(得分:0)
我认为你需要这样的东西。我没有测试它,可能还有更好的方法来做到这一点。我只是尝试了对原始代码进行最快速的更改以使其正常工作。
$query = "SELECT uid FROM users WHERE name = '".$user."' OR name = '".$friend."'";
$getuid = $mysqli->query($query);
if($uid = $getuid->fetch_assoc())
{
$query = "INSERT INTO friendlist SET friend1= '".$uid['uid'][0]."', friend2='".$uid['uid'][1]."', accept=0";
$mysqli->query($query)
}
$getuid->close();
答案 1 :(得分:0)
好的,我终于理解了fetch的概念。
为了接收所有值,我必须在while循环中检索它们。
以下是解决方案:
$getuid = $mysqli->prepare("SELECT `uid` FROM `users` WHERE name = ? OR name = ?");
$getuid->bind_param("ss", $user, $friend);
$arra = array();
$getuid->execute();
$getuid->bind_result($uid);
while ($getuid->fetch()) {
$arra[] = $uid;
}
现在我可以使用$arra[0]
和$arra[1]