2013-02-20 4 views
0

General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.PDO - синтаксис fetchAll не работает

Мой код: - создать выберите тег и заполнить его с записями из базы данных

<?php 
    echo "<select name='test'>"; 
    $call = $dbh->prepare('call listmfg_codes()'); 
    $call->execute(); 
    $result = $call->fetchALL(PDO::FETCH_COLUMN, 0); 
    foreach($result as $row) 
    { 
?>  
    <option value="<?php echo $row['mfg_code'];?>"><?php echo $row['mfg_code'];?>  </option>"; 
<?php  
} 
echo "</select>"; 
?> 

Это не похоже на работу. Пожалуйста, порекомендуйте. Благодаря


Затем я попытался изменить сценарий снова, чтобы приспособить closeCurosr() и fetchAll(). Тем не менее он не работает

<?php 
.... 
$stmt_call -> closeCursor(); 

echo "<select name='test'>"; 
$stmt_call = $dbh->prepare('call listmfg_codes()'); 
$stmt_call->execute(); 
foreach ($stmt_call -> fetchAll() as $row) 
{ 
?> 
<option value="<?php echo $row['mfg_code'];?>"> <?php echo $row['mfg_code'];?> </option>"; 
<?php  
} 
echo "</select>"; 
?> 

Та же ошибка сохраняется даже thoght fetchAll() и closeCursor() включены.

Я по-прежнему ищу ответы за пределами stachOverFlow. Пожалуйста, сообщите спасибо Clement

+0

Возможный дубликат http://stackoverflow.com/questions/2421516/how-to-avoid-this-pdo-exception-cannot-execute-queries-while-other-unbuffered-q – Rikesh

+0

Что именно 'call listmfg_codes()' ?? –

+0

это процедура mysql, которая вызывается этим скриптом для выполнения посредством - «select different (mfg_code) from test;» – user1739825

ответ

0

Следующий код работает для меня.

<?php 
    echo "<select name='test'>"; 
    $call = $dbh->prepare("SELECT DISTINCT(mfg_code) FROM test"); 
    $call->execute(); 
    $result = $call->fetchALL(PDO::FETCH_COLUMN, 0); 
    foreach($result as $row) 
    { 
?>  
    <option value="<?php echo $row['mfg_code'];?>"><?php echo $row['mfg_code'];?>  </option>"; 
<?php  
} 
echo "</select>"; 
} 

?> 
+0

Это не работает. По-прежнему такая же ошибка. Я подозревал, что это может быть из-за повторных выполнения PDO сценариев mysql в одном скрипте, хотя это невозможно установить. Единственный способ - разбить длинный скрипт на два файла сценариев, каждый из которых имеет собственное выполнение PDO. И это сработало. – user1739825

+0

В вашем вопросе не было указаний на повторные исполнения PDO. Было бы желательно, если вы укажете все соответствующие факторы в любом новом вопросе, который вы задаете –

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