0

現在、次のコードを使用して、すべてのアカウントの種類をドロップダウン メニューに表示しています。

[HTML]

<select name="sel-account-name" id="sel-account-name" class="cp-controls-sml input-select input-select-xxlrg" tabindex="6">
    <option value="0">Select Account</option>

    <?php echo $options?>

</select>

【PHP】

<?php

## Get all accounts from tblAccounts to display on add user page

mysql_connect('localhost', 'root', '');


mysql_select_db('database');

$sql="SELECT AccountName FROM tblaccounts";
$result=mysql_query($sql);

$options="";

while ($row=mysql_fetch_array($result)) {

    $id=$row["Id"];
    $accname=$row["AccountName"];
    $options.="<OPTION VALUE=\"$accname\">".$accname.'</option>';

}

?>

これは完全に正常に動作します...私は次のようにPDOを使用してこれを書き込もうとしています:

public static function getAllAccounts() {

    $pdo = new SQL();
    $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);

    try {

        $query = "SELECT AccountName FROM tblaccounts";


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

    $stmt->execute();

    $row = $stmt->fetch(PDO::FETCH_BOTH);

    $stmt->closeCursor();

}

catch (PDOException $pe) {
    die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
}

$dbh = null;

}
4

1 に答える 1

1

方法:

public static function getAllAccounts() {
    $pdo = new SQL();
    $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);
    try {
        $query = "SELECT AccountName FROM tblaccounts";
        $stmt = $dbh->prepare($query);
        $stmt->execute();
        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
        $stmt->closeCursor();
    } catch (PDOException $pe) {
        die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
    }
    $dbh = null;
    return $rows;
}

出力:

foreach(<classname>::getAllAccounts() as $acct) {
    $options.=sprintf('<option>%s</option>', $acct['AccountName']);
}
于 2012-10-10T14:30:46.603 に答える