Я использую динамический bind_parm, который:
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-> disabled_rows, который всегда -1;И $ mysqli-> num_rows был недоступен, он не был определен в $ mysqli.
Я думаю, что помещать переменную в этот цикл, чтобы считать это, не нужно, есть у кого-нибудь предложение?
Большое спасибо!