Определение результата mySql в качестве переменной для цикла while

Мне интересно, возможно ли это? Я знаю, что это вряд ли практично … Хотя я столкнулся со случаем, когда это может пригодиться.

Возьмите этот пример, прямо вперед.

while( $row = $qry->fetch(PDO::FETCH_ASSOC) ){}

Теперь можно ли сделать что-то подобное?

$newVar = '$row = $qry->fetch(PDO::FETCH_ASSOC)';
while($newVar){}

Я пробовал много способов, но безрезультатно.

Мои циклы while выводят много данных и в зависимости от типа запроса / соединения (mySql, mySqli или PDO) будут зависеть от того, какой оператор входит в цикл while.

Это в некоторой степени моя запасная идея, если подготовленные заявления не поддерживаются.

-1

Решение

Если функция для извлечения строки отличается, вы можете использовать замыкания в зависимости от используемой версии PHP. Чтобы использовать замыкания, вам нужно определить функцию, которая знает, как извлечь строку, а затем передать ее в цикл while. Например, вот закрытия для PDO и MySQL:

$pdo_fetch = function() use ($qry)
{
return $qry->fetch(PDO::FETCH_ASSOC);
}

$mysql_fetch = function() use ($result)
{
return mysql_fetch_assoc($result);
}

Эти замыкания могут поступать откуда угодно, а затем передаваться в ваш цикл while:

if($pdo)
{
$fetch = $pdo_fetch;
}
else
{
$fetch = $mysql_fetch;
}

while($row = $fetch()) { }
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]