MYSQLi存储结果然后得到结果

时间:2015-10-24 07:03:01

标签: php mysqli

我有一个执行以下操作的功能

     $stmt = mysqli_prepare..
         //check for preparation failure
     mysqli_stmt_bind_param
         //Check for bind error
     mysqli_stmt_execute
         //Check for execution error

     mysqli_stmt_store_result   //Problem is here
         //Check for error
     return $stmt

我在函数中有这些步骤,因为我需要在两个位置使用相同的代码。获取stmt后,我需要检查行数[mysqli_Stmt_num_rows]。因此,只有我在函数末尾存储了结果stmt。

检查行后,我需要从结果中获取列值。所以我尝试在返回的语句对象上执行mysqli_stmt_get_result。它失败。

我刚删除了商店结果部分,只是从函数返回了执行的stmt。然后得到结果。但是在存储结果之前我无法计算行数。

然后我做了一个简单的技巧,试图克隆返回的语句。不幸的是,mysqli stmt不可克隆。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

mysqli_result类还具有一个名为num_rows

的属性
$result = $stmt->get_result();
echo $result->num_rows;

如果您要坚持我不建议使用的程序样式,则有一个相应的功能mysqli_num_rows($result)