2
我使用的是动态bind_parm,那就是:PHP动态绑定,如何知道从MySQL中选择了多少结果?
public function get_result($sql,$types = null,$params = null) {
$stmt = $this->mysqli->prepare($sql);
if($types&&$params)
{
$bind_names[] = $types;
for ($i=0; $i<count($params);$i++)
{
$bind_name = 'bind' . $i;
$$bind_name = $params[$i];
$bind_names[] = &$$bind_name;
}
$return = call_user_func_array(array($stmt,'bind_param'),$bind_names);
}
$stmt->execute();
# these lines of code below return one dimentional array, similar to mysqli::fetch_assoc()
$meta = $stmt->result_metadata();
while ($field = $meta->fetch_field()) {
$var = $field->name;
$$var = null;
$parameters[$field->name] = &$$var;
}
call_user_func_array(array($stmt, 'bind_result'), $parameters);
while($stmt->fetch())
{
$this->handler ($parameters); // Handle queried results
}
$stmt->close();
}
不过,我不能找回过去的操作过程中有多少行选择,我想$ mysqli-> affected_rows ,这总是-1;而$ mysqli-> num_rows是无法访问的,它在$ mysqli中是未定义的。
我认为把一个变量放在那个循环中来计算它是不必要的,有没有人有建议?
非常感谢!