私はしばらくこれに取り組んできました。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 を間違って使用していることはわかっていますが、どこでどのように使用しているのかわかりません。前もって感謝します。