【发布时间】:2014-11-19 05:26:07
【问题描述】:
我已经有一段时间了。使用 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。 第二个返回单词 Array ,这让我认为它是一个 2 dim 数组。 第三无。 第四无。
我知道我以某种方式错误地使用了 fetchAll,但我不知道在哪里或如何使用。提前谢谢你。
【问题讨论】:
-
你试过
print_r($stateCodes)吗?
标签: php mysql pdo fetch fetchall