0

を使用する代わりに、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?出来ますか?

列をバインドできることはわかっていますが、それも避けようとしています。コードは最小限に抑えます。

4

2 に答える 2

3

列をバインドしたり、配列参照やオブジェクト プロパティを使用したりしたくない場合、および現在の変数スコープを汚染することを気にしない場合は、この醜いハックを試してください

while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
    extract($row);
    echo $name;
    // etc
}

以前の重複した質問に対する私の回答で述べたように、望ましいPDOStatement::bindColumnでしょう。自分がプロではないことを証明する以外に、「コードを最小限に抑える」ことで何を達成しようとしているのか、私には本当にわかりません。

于 2013-10-04T05:13:28.883 に答える
0

次のコードを使用できます。

extract($row);

そして、あなたは持っています:

$name$addressなど

于 2013-10-04T05:13:13.320 に答える