0

我正在开发一个朋友列表功能,但我不知道如何正确接收这些值。

我的代码如下所示:

$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 上。

任何人都可以帮助我?

4

2 回答 2

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();
于 2012-12-13T01:51:07.547 回答
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]

于 2012-12-14T13:31:49.207 回答