如何从PDO查询返回正常数组?

时间:2014-01-15 09:11:29

标签: php arrays pdo

我正在使用PDO访问数据库以检索值,但返回的数组很乱。有没有办法可以获取值并将每个值分配给变量?

这是我的代码:

$conn = new PDO(
  "mysql:host=$host;dbname=$db",
  $username, 
  $passwd, 
  array(
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  )
);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->query('SELECT * FROM kanji WHERE wordid = 1 ');

$row = $result->fetchAll();
var_dump($row);

结果如下:

    array(1) { [0]=> array(16) { ["wordid"]=> string(1) "1" [0]=> string(1) "1" ["audio"]=>
 string(38) "585c02afdc272d3a3473a888b9b185a4.mp3 " [1]=> string(38) 
"585c02afdc272d3a3473a888b9b185a4.mp3 " ["image"]=> string(23) "paste-5317169512449.jpg" 
[2]=> string(23) "paste-5317169512449.jpg" ["guess"]=> string(6) "okujou" [3]=> string(6) 
"okujou" ["kanji"]=> string(6) "屋上" [4]=> string(6) "屋上" ["fullword"]=> string(6) 
"okujou" [5]=> string(6) "okujou" ["vietnamese"]=> string(10) "roof,top " [6]=> string(10)
 "roof,top " ["example"]=> string(8) "屋上 " [7]=> string(8) "屋上 " } }

我想要一个像["wordid"]=> "1"这样的结果,所以我可以将每个值分配给一个变量。

1 个答案:

答案 0 :(得分:1)

您可以在fetch_mode

的通话中设置fetchAll
$row = $result->fetchAll(PDO::FETCH_ASSOC);

或者使用setFetchMode设置要使用的默认提取模式。