Существует ли метод прямого использования имени столбца при выводе данных без привязки столбцов при использовании php pdo и mySql вместо использования $row['columnName']
.
Например: Мой текущий метод
$sql = "select id, name, address, country from members where country = :country"; $stmt=$conn->prepare($sql); $stmt->execute(array(':country' => $country)); while( $row = $stmt->fetch() ) { //I can forgo the while loop. echo $row['name']; //Can I use $name here? echo $row['address']; echo $row['country']; }
Вместо использования $row['colName']
можно ли каким-то образом использовать $colName
? Я знаю, что ezSql
делает это так, но я не использую ezSql
поскольку он не поддерживает подготовленные инструкции. Как это может быть сделано? Может быть, for each
? Является ли это возможным?
Я знаю, что могу связывать столбцы, но я тоже пытаюсь избежать этого. Сохраняйте код как минимум.
Если вы действительно не хотите связывать столбцы или использовать ссылки на массивы или свойства объекта и не против загрязнять текущую область переменных, попробуйте этот уродливый взломать
while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) { extract($row); echo $name; // etc }
Как упоминалось в моем ответе на ваш предыдущий, повторяющийся вопрос , PDOStatement::bindColumn
бы PDOStatement::bindColumn
. Я действительно не знаю, чего вы пытаетесь достичь, «сохраняя код до минимума», кроме того, чтобы доказать, что вы непрофессиональны.
Вы можете использовать этот код:
extract($row);
и тогда у вас есть:
$name
, $address
и т. д.