我已阅读PHP PDO Book,现在有一些基本问题:
如果我理解正确,我将不得不使用begin_transaction()
来关闭自动提交。如果我对自动提交没有问题,我总是很乐意使用简单query()
这是正确的吗?
我是否做得对,query()
和exec()
之间基本没有区别,除了上述问题?
我做了一个像这样的查询:
foreach ($db->query('SELECT * from user') as $row) {
$row = json_encode($row);
echo $row;
}
返回JSON对象:
{
"alias":"tk",
"0":"tk",
"password":"pw",
"1":"pw",
}
这基本上是正确的,但是,为什么每个值都返回两次,一次使用我选择的关键字,另一次使用Integer键?
答案 0 :(得分:2)
为什么每个值都返回两次,一次使用我选择的关键字,另一次使用整数键?
数组的值均为列名称作为键,列序列也是如此。因此,您可以使用所需的列数来访问结果集中的值。 (当然,使用select *
语句似乎没有太大用处...)
您可以使用PDOStatement::setFetchMode()
影响此行为。以PDO::FETCH_
开头的常量适用于此处。 Their documentation can be found here