2011-04-23 53 views
4

这是我第一次使用mysqli。它似乎在寻找mysqli_num_rows()中括号之间的结果集的名称。但是,当我尝试$ stmt,$ conn,而没有,我得到了同样的错误。令人沮丧!最后一行的$ WHAT是什么?mysqli_num_rows()期望参数1是mysqli_result,对象

或者我正在尝试错误的粘性。我想要做的就是检查结果是否被返回。我真的不需要行数。我应该做一个错误信息的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); 
} 
+0

可能重复[警告:mysql_fetch_ *预计参数1是资源,布尔给定的错误(http://stackoverflow.com/questions/11674312/warning-mysql -fetch-expect-parameter-1-to-resource-boolean-given-error) – 2012-07-30 14:55:05

回答

8

当你只想要面向对象的时候,你就结合了面向过程和面向对象的方法。更改

$num=mysqli_num_rows($WHAT); 

$num = $stmt->num_rows(); 
+0

谢谢!我只是在学习oop并感谢你的建议! :) – dac 2011-04-23 04:00:02

+0

没问题。只要记住,虽然你可以混合两者,但选择一种方法并坚持使用它通常会更好,更麻烦! – shmeeps 2011-04-23 04:08:51

相关问题