PHP PDO - 了解初学者

时间:2013-09-24 13:24:46

标签: php pdo

我已阅读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;
    }
    
  4. 返回JSON对象:

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

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

1 个答案:

答案 0 :(得分:2)

  

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

数组的值均为列名称作为键,列序列也是如此。因此,您可以使用所需的列数来访问结果集中的值。 (当然,使用select *语句似乎没有太大用处...)

您可以使用PDOStatement::setFetchMode()影响此行为。以PDO::FETCH_开头的常量适用于此处。 Their documentation can be found here