Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
num_rows应为>;时为0;0用于php mysqli代码_Php_Mysqli_Mysql Num Rows - Fatal编程技术网

num_rows应为>;时为0;0用于php mysqli代码

num_rows应为>;时为0;0用于php mysqli代码,php,mysqli,mysql-num-rows,Php,Mysqli,Mysql Num Rows,我的num_rows返回为0,我尝试了几种方法来调用它,但我被卡住了。这是我的密码: $conn = new mysqli($dbserver, "dbuser", "dbpass", $dbname); // get the data $sql = 'SELECT AT.activityName, AT.createdOn FROM userActivity UA, users U, activityType AT

我的num_rows返回为0,我尝试了几种方法来调用它,但我被卡住了。这是我的密码:

    $conn = new mysqli($dbserver, "dbuser", "dbpass", $dbname);

    // get the data 
    $sql = 'SELECT AT.activityName, AT.createdOn
            FROM userActivity UA, users U, activityType AT  
            WHERE U.userId = UA.userId
            and AT.activityType = UA.activityType
            and U.username = ?
            order by AT.createdOn';             
    $stmt = $conn->stmt_init();
    $stmt->prepare($sql);
    $stmt->bind_param('s', $requestedUsername);
    $stmt->bind_result($activityName, $createdOn);
    $stmt->execute();

    // display the data
    $numrows = $stmt->num_rows;
    $result=array("user activity report for:  " . $requestedUsername . " with " . $numrows . " rows:");
    $result[]="Created On --- Activity Name";
    while ($stmt->fetch())
    {
        $msg = " " . $createdOn . " --- " . $activityName . " ";
        $result[] = $msg;
    }

    $stmt->close();
找到了多行,fetch循环可以很好地处理它们。关于如何获取查询中返回的行数,有什么建议吗


非常感谢您的建议。提前感谢。

在调用num_rows;之前,请尝试添加此项


$stmt->store_result()

在调用num_rows;之前,请尝试添加此代码


$stmt->store_result()

您需要先调用
$stmt->store_result()
,就在
$stmt->num_rows
之前,您需要先调用
$stmt->store_result()
,就在
$stmt->num rows
之前,我不知道这是否会解决问题,但在
执行
查询之前,您不能
绑定_result
,如果我没弄错的话

还有您的while循环:

while ($stmt->fetch())
 {
     $msg = " " . $createdOn . " --- " . $activityName . " ";
     $result[] = $msg;
 }

循环的每次迭代都会丢失所有
$msg
变量,最后一个设置除外,因为您需要执行
$msg.=
或使
$msg
成为一个数组
$msg[]=

我不知道这是否会修复它,但在执行
查询之前,您无法绑定结果,如果我没弄错的话

$stmt->store_result();
$numrows = $stmt->num_rows;
还有您的while循环:

while ($stmt->fetch())
 {
     $msg = " " . $createdOn . " --- " . $activityName . " ";
     $result[] = $msg;
 }
循环每次迭代都会丢失所有
$msg
变量,最后一个设置除外,因为您需要执行
$msg.=
或将
$msg
设置为数组
$msg[]=

$stmt->store_result();
$numrows = $stmt->num_rows;
检查这个:这个呢

检查这个:这个呢

请注意,我没有复制您的答案:)之前,您的答案提到将调用
num_rows
作为方法而不是成员。然后在我回答之后你编辑了它。别生气!作为记录,我没有复制您的答案:)之前,您的答案提到将调用
num_rows
作为方法而不是成员。然后在我回答之后你编辑了它。别生气!