在数组中获取准备好的mysqli查询的结果,而不是将vars绑定到字段

时间:2012-06-21 11:20:30

标签: php mysqli

这会得到正确的结果,但我希望将结果行放在数组中,而不是将单个变量绑定到每个字段,这样我就可以访问$row[0]和/或$row["name"]等字段。

    $idToSearch = 2;

    $conn = new mysqli("localhost", "username", "password", "db_people");

    $statement = $conn->prepare("SELECT name, age from People where id = ?");
    $statement->bind_param("i", $idToSearch);
    $statement->execute();
    $statement->bind_result($name, $age);

    if($statement->fetch()) {
        echo "The name is $name and the age is $age. ";
    } else {
        echo "No person found with that id.";
    }

看了一个关于fetch_assoc()的例子,但是它使用了一个我不太热的mysqli_result类和我不想使用的毫无准备的语句。​​

编辑:为了澄清,我对解决方案是否合适无论是否使用bind_result。

1 个答案:

答案 0 :(得分:1)

为了使用fetch_assoc,您需要使用get_results,这会强制您不使用您似乎不想做的绑定。因此,我相信用户uramihsayibok在bind_result函数的php文档中很好地解释了你想要做的事情,具体在这里:http://php.net/manual/en/mysqli-stmt.bind-result.php#92505。他们解释了如何解决这个问题,以便将结果导入数组。