我有一个执行以下操作的功能
$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不可克隆。
如何解决此问题?
答案 0 :(得分:1)
mysqli_result
类还具有一个名为num_rows
$result = $stmt->get_result();
echo $result->num_rows;
如果您要坚持我不建议使用的程序样式,则有一个相应的功能mysqli_num_rows($result)