2014-02-04 5 views
0

Итак, у моего хоста нет драйвера mysqlnd для mysqli, поэтому я не могу использовать функцию get_result() (и это не вариант установки драйвера mysqlnd). Каковы альтернативы следующим запросам, чтобы я не использовал get_result()?Альтернативы функции get_result()?

Я знаю, что я могу использовать следующее, чтобы получить одного результата из базы данных:

if ($stmt = $cxn->prepare("SELECT `count` FROM `numbers` WHERE `count_id` = ?")) { 
    $stmt->bind_param('i', $count_id); 
    $stmt->execute(); 
    $stmt->bind_result($count); 
    $stmt->fetch(); 
    $stmt->close(); 
} 

Но что, если я должен выбрать несколько результатов из базы данных, проходных каждый, и получить другое результат?

if ($stmt = $cxn->prepare("SELECT `count` FROM `numbers` WHERE `number` = ?")) { 
    $stmt->bind_param('i', $number); 
    $stmt->execute(); 
    $result = $stmt->get_result(); // uses get_result() 
} 

if ($result->num_rows) { // uses get_result() 
    while ($row = $result->fetch_assoc()) { // uses get_result() 
     if($stmt = $cxn->prepare("SELECT `value` FROM `values` WHERE `number` = ?")) { 
      $stmt->bind_param('i', $row['count']); 
      $stmt->execute(); 
      $stmt->bind_result($value); 
      $stmt->fetch(); 
      $stmt->close(); 
     } 
    } 
} 

Я не могу использовать это, потому что некоторые заявления требуют get_result(), которые я не могу использовать.

Каковы мои альтернативы?

+0

Не продуктивный ответ, но если честно, я бы найти другой хозяин. – Ant

+0

Мне не повезло найти другую, у которой есть ежемесячное выставление счетов, дешево и имеет cPanel. – Walter

ответ

0

Попробуйте это,

if ($stmt = $cxn->prepare("SELECT `count` FROM `numbers` WHERE `count_id` = ?")) 
{ 

    $stmt->bind_param('i', $count_id); 
    $stmt->execute(); 
    $result = $stmt->fetchAll(); 

     if (count($result)) 
     { 

      foreach($result as $row) 
      { 

       print_r($row); 

      } 
     } 
     else 
     { 

      echo "Nothing Returned."; 

     } 
    } 
Смежные вопросы