0

私はしばらくこれに取り組んできました。PDOのドキュメントを使用し、古いstackoverflowの投稿に基づいて、これを正しく行っていると感じていますが、fetchAllによって返された配列のどこにデータがあるかわかりません。どんな助けでも大歓迎です。

私の DatabaseHandler クラスでは:

public function getStateList(){
    $root = "root";
    $rootpasswd = "password";
    $host = "localhost";
    try{
        $dbh = new PDO("mysql:host=$host;dbname=TESTDATA;", $root, $rootpasswd);
        $stmt = $dbh->prepare("SELECT id FROM state");
        if(!$stmt->execute()){
            //error
        }
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }catch(PDOExeption $e){
        //catch exception
    }
}

このメソッドを呼び出すと、52 個の ID の配列が返されます。これは本来の動作ですが、このデータにアクセスできません。なんで?メソッドを呼び出すコードは次のとおりです。

<?php
    require("./Database/DatabaseHandler.php");

    $dbh = new DatabaseHandler();
    $stateCodes = $dbh->getStateList();
    $max = sizeof($stateCodes);

    error_log("Arraysize=".$max."\n", 3, "/testlog/data.dat");
    error_log("Position 0: ".$stateCodes[0]."\n", 3, "/testlog/data.dat");
    error_log("Position[0][0]: ".$stateCodes[0][0]."\n", 3, "/testlog/data.dat");
    error_log("Position[0][0][0]: ".$stateCodes[0][0][0]."\n", 3, "/testlog/data.dat");
?>

最初のエラー ログには 52 が記録されます。2 番目のエラー ログには Array という単語が返され、2 次元配列だと思われます。第三の何も。4番目の何もない。

fetchAll を間違って使用していることはわかっていますが、どこでどのように使用しているのかわかりません。前もって感謝します。

4

1 に答える 1