0

何らかの理由で、データベースからデータをフェッチしようとすると、データが複数回返されます。

$base = "mysql:host=" . $config["database"]["host"] . ";port=" . $config["database"]["port"]  . ";dbname=" . $config["database"]["name"];
$conn = new PDO($base, $config["database"]["user"], $config["database"]["pass"]);

$query = $conn->query("SELECT setting, value FROM main");

if(!$query->rowCount()){
    echo "An error occured while trying to load some important information. Please check your database credentials and data and try again.";
}
else{
    $result = $query->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);

    var_dump($result);
}

たとえば、テーブルに次のデータがあるとします。

setting  |  value
------------------
one      |  1
------------------
two      |  2
------------------

関数 var_dump() を呼び出すと、次のように出力されます。

array(2) {
    ["one"]=> array(1) {
        [0]=> string(56) "1"
  }
  ["two"]=> array(1) {
      [0]=> string(24) "2"
  }
}
array(2) {
    ["one"]=> array(1) {
        [0]=> string(56) "1"
  }
  ["two"]=> array(1) {
      [0]=> string(24) "2"
  }
}
array(2) {
    ["one"]=> array(1) {
        [0]=> string(56) "1"
  }
  ["two"]=> array(1) {
      [0]=> string(24) "2"
  }
}
array(2) {
    ["one"]=> array(1) {
        [0]=> string(56) "1"
  }
  ["two"]=> array(1) {
      [0]=> string(24) "2"
  }
}

なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

0

var_dump複数回実行されているようです。

何かがそれを複数回呼び出します。

実行されるのはコードではないと思います。

として

strlen('1') !== 56 
于 2012-11-26T22:26:06.667 に答える