如何在mysqli中获取结果/行

时间:2015-03-22 20:35:48

标签: php mysql mysqli

我正在学习mysql,但我不确定接下来会在这个代码中找到匹配的行作为结果,我该如何获取?

$stmt= $db->prepare("SELECT * FROM users WHERE email=? and password = ?");
$stmt->bind_param("ss", $_POST['user_name'],md5($_POST['user_pass']));
$stmt->execute();

我相信这对你来说很简单,请帮助我学习。

1 个答案:

答案 0 :(得分:1)

查看this page

上的示例#6

这里是相关位,紧跟在bind_param()和execute()之后:

$out_id    = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
    echo "Binding output parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

while ($stmt->fetch()) {
    printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}

由于我不知道您使用SELECT *提到哪些列,我只是保留示例。

你也可以使用fetch_assoc(),它可能更容易使用,并且最终会被更频繁地使用。从php.net上的same page开始,我们从示例#8获得了这个相关部分(实际上我必须稍微修改它 - 例如#8正在做一些带缓冲的时髦东西):

if (!($res = $stmt->get_result())) {
    echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
}

while ($row = $res->fetch_assoc()) {
    var_dump($row);
}
$res->close();