2

我已经阅读了PHP PDO Book,现在有一些基本问题:

  1. 如果我理解正确,我将不得不使用begin_transaction()以关闭自动提交。如果我对自动提交没问题,我总是很乐意使用简单的query()
    这是正确的吗?

  2. 我说得对吗,除了上面提到的主题之外,query()和之间基本上没有区别吗?exec()

  3. 我做了一个这样的查询:

    foreach ($db->query('SELECT * from user') as $row) {
      $row = json_encode($row);
      echo $row;
    }
    

它返回一个 JSON 对象:

    {
     "alias":"tk",
     "0":"tk",
     "password":"pw",
     "1":"pw",
    }

这基本上是正确的,但是,为什么每个值都返回两次,一次是我选择的关键字,另一次是整数键?

4

1 回答 1

2

为什么每个值返回两次,一次是我选择的关键字,另一次是整数键?

该数组具有以列名作为键的值和列序号。因此,您可以通过使用您想要的列数来访问结果集中的值。(当然,这似乎并没有太多用的select *语句......)

您可以使用 来影响此行为PDOStatement::setFetchMode()。以 开头的常数PDO::FETCH_适用于此。他们的文档可以在这里找到

于 2013-09-24T13:27:42.327 回答