0

データベースから動的にデータをロードしようとしています。ユーザーがフォームの選択ボタンをクリックすると、データがデータベースから動的にロードされます。しかし問題は、PDO を使用する必要があることです。出力が得られません。何が問題なのかわかりません。これが私のコードです-

<tr><td><font size="+1">Region   :</font></td>
<td><Select name="region" class="regionfields" id="wineRegion">
<option id="0">-- Select Region --</option>
<?php

$hostname = 'localhost';

$username = 'ovic';

$password = 'root';

try {
$dbh = new PDO("mysql:host=$hostname;dbname=winestore", $username, $password);

echo 'Connected to database<br />';


$sql = "SELECT region_name FROM region";


$stmt = $dbh->query($sql);


$obj = $stmt->fetch(PDO::FETCH_OBJ);


foreach($obj->region_name AS $W)
{?>

<option id="<?php echo $W; ?>"><?php echo $W; ?></option>
<?php

}

/*** close the database connection ***/
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
</Select></td></tr>
4

1 に答える 1

1

オブジェクトの配列を返す $stmt->fetchAll() を使用する必要がある場合があります。fetch() メソッドは単一のオブジェクトのみを返します。

$regions = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($regions as $region) {
?>
    <option id="<?php echo $region->region_name; ?>">
        <?php echo $region->region_name; ?></option>
<?php
}

それが失敗した場合は、fetchAll() の結果に対して print_r を実行して、何か返されているかどうかを確認してください。

于 2013-09-01T03:30:35.647 に答える