Php 返回的行数不为';行不通

Php 返回的行数不为';行不通,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,这是我目前拥有的代码: $stmt = $mysqli->prepare("SELECT * FROM Account WHERE accountKey=? AND accountUsername=?"); $stmt->bind_param('ss', $key,$username); $stmt->execute(); $stmt->store_result(); $numrows = $stmt->num_rows;

这是我目前拥有的代码:

    $stmt = $mysqli->prepare("SELECT * FROM Account WHERE accountKey=? AND accountUsername=?");
    $stmt->bind_param('ss', $key,$username);

    $stmt->execute();
    $stmt->store_result();
    $numrows = $stmt->num_rows;
问题是这个查询很好。我在PHPMyAdmin上尝试了它,它返回了一个结果。当我检查有多少结果,我得到了这个总是0时,它应该是1。。。你知道会发生什么吗

来自PHPMyAdmin的查询:
那么什么是
?另请注意,您正在使用
prepare
。查询没有问题。我没有得到任何错误。它只返回0我尝试只放置accountKey或accountUsername,但它们都没有更改任何内容…也许我应该更直接一些。在中说明什么是
$key
$username
。而且它是否存在于
帐户中
?我从未使用过
存储结果
,但手册页上说它传输了上次查询的结果集。是不是在你有机会使用它之前清空了结果集?如果在调用
store\u result
之前将
num\u rows
调用移动到,会得到什么结果?在打开
和之后立即将错误报告添加到文件顶部?解释一下就好了。OP可能不清楚一段代码是否有错误。或者他们做错了什么。我现在明白了:mysqli_stmt_bind_param()希望参数1是mysqli_stmt,字符串在yes中给出,我的错,我忘了添加$stmt作为第一个参数。再说一遍,
$key
$username
是什么@Jean MathieuHmm。我唯一能想到的是$key和$username没有正确设置,或者$stmt未关闭。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

include("../script/connection.php"); 

$link = mysqli_connect($SQLhost, $SQLusername, $SQLpassword, $SQLdatabase);

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$key = '4dc5f0ea67ca3791614b28c310cd1c79';
$username = 'jean8mathieu';

$query = "SELECT * FROM Account WHERE accountKey=? AND accountUsername=?";

if ($stmt = mysqli_prepare($link, $query)) {
    mysqli_stmt_bind_param($stmt, 'ss', $key, $username);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));
    mysqli_stmt_close($stmt);
} else {
   printf('errno: %d, error: %s', $mysqli->errno, $mysqli->error);
   exit;
}

mysqli_close($link);