我正在用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

最佳答案

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

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));

}

关于php - 当我尝试使用Silex框架更改默认的访存样式时,出现“MysqliException:未知访存类型'FETCH_ASSOC'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24807451/

10-09 20:34