【问题标题】:mysqli_num_rows() expects parameter 1 to be mysqli_result, object [duplicate]mysqli_num_rows() 期望参数 1 是 mysqli_result, object [重复]
【发布时间】:2011-04-23 03:39:15
【问题描述】:

这是我第一次使用 mysqli。它似乎在 mysqli_num_rows() 的括号之间寻找结果集的名称。然而,当我尝试了 $stmt、$conn 和什么都没有时,我得到了同样的错误。令人沮丧!下面最后一行的 $WHAT 是什么?

或者我尝试了错误的策略。我要做的就是检查是否返回了结果。我真的不需要行数。我应该只做一个带有错误消息的 else 语句吗?这是最好的方法吗?是否有一种编写函数来连接和接受查询及其参数的好方法?我为mysql写了一个,但这太不一样了!我不期待重写几十个查询!

$conn = mysqli_connect($host, $user, $pwd, $db,$port=$port_nbr); 

if ($mysqli_connect_errno) {
    printf("Connect failed: %s\n",
    mysqli_connect_error());
    exit;
}
if($stmt=$conn->prepare("SELECT id, name, status, type FROM organization")) {
    $stmt->execute();
    $stmt->bind_result($org_id, $orgname, $orgstatus, $orgtype);    
    $num=mysqli_num_rows($WHAT);
}

【问题讨论】:

标签: php mysqli


【解决方案1】:

当您只想要面向对象时,您正在结合过程和面向对象的方法。改变

$num=mysqli_num_rows($WHAT);

$num = $stmt->num_rows();

【讨论】:

  • 没问题。请记住,虽然您可以将两者混合使用,但通常最好选择一种方法并坚持下去!
【解决方案2】:

mysqli_num_rows 将查询结果作为参数 http://us.php.net/manual/en/mysqli-result.num-rows.php

您也可以在 OOP 样式中使用它作为 $result->num_rows;

【讨论】:

  • 感谢您的链接!有时我需要计算行数。
【解决方案3】:

此错误的原因是您可能将$stmt 对象传递给mysqli_num_rows()

此外,我看到您在 php 中混合了两种不同的方法来使用 mysql 数据库 - 面向对象的方法过程方法。你必须选择其中之一,然后继续这样的事情 -

程序方法(使用 mysqli 扩展)

$con = mysqli_connect("localhost", "user", "pass", "test") or die("Connection Error: " . mysqli_error($conn));
$query = "SELECT id, name, status, type FROM organization"; 
$result = mysqli_query($con, $query) or die(mysqli_error($con));
$count = mysqli_num_rows($result);

// $count now stores the number of rows returned from that query

面向对象的方法(使用 mysqli 扩展)

<?php
$host = "localhost";
$username = "user";
$password = "pass";
$dbname = "test";

// Create connection
$conn = new mysqli($host, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, name, status, type FROM organization";
$result = $conn->query($sql);
$count = $result->num_rows;
// $count now stores the number of rows returned
$conn->close();
?>

您可以在此处阅读更多相关信息 - https://www.w3schools.com/php/php_mysql_select.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 2017-05-15
    • 2013-07-17
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2011-01-05
    • 2013-03-04
    相关资源
    最近更新 更多