0

我正在使用 Silex 进行一些测试以开发 REST API,但是当我从数据库中获取数据时遇到了问题。

MysqliException: Unknown fetch type 'FETCH_ASSOC'"

当我不添加任何获取类型时,我会使用 PDO::FETCH_BOTH 正确接收数据,当表中有很多字段并且它们按编号和列名重复时,这可能会很烦人。

public function getData(Application $app, $parentId){

  $sql = "SELECT * FROM table WHERE parent_id = '$parentId' AND active = '1' ORDER BY label";
  $rs = $app['db']->query($sql);

  return $app->json($rs->fetchAll('PDO::FETCH_ASSOC'));

}

我注册我的数据库有MySqli:

$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
        'driver' => 'mysqli',
        'host' => 'localhost',
        'dbname' => 'database_name',
        'user' => 'user',
        'password' => 'password',
    ),
));

我实际上会明白我做错了什么。

有谁知道为什么会发生这种情况以及如何解决?

有关问题的一些链接:http: //www.doctrine-project.org/api/dbal/2.2/class-Doctrine.DBAL.Driver.Mysqli.MysqliStatement.html

4

1 回答 1

0

好的,我只是在样式之前添加了一个带有 \ 的常量并且它起作用了。

public function getData(Application $app, $parentId){

  $sql = "SELECT * FROM table WHERE parent_id = '$parentId' AND active = '1' ORDER BY label";
  $rs = $app['db']->query($sql);

  return $app->json($rs->fetchAll(\PDO::FETCH_ASSOC));

}
于 2014-07-17T16:09:12.850 回答