【发布时间】: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);
}
【问题讨论】:
-
mysqli_num_rows()需要一个结果集标识符,但mysqli_prepare()返回一个语句对象。比较mysqli_num_rows()和mysqli_stmt_num_rows()。两者都使用类似的面向对象语法可能会令人困惑:$mysqli_result->num_rows和$mysqli_stmt->num_rows。