我正在尝试将sqlite3与symfony2一起使用。 这是app / config / parameters.yml
中的数据库配置parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: null
database_name: librarian
database_user: root
database_password: null
database_path: librarian
我的app / config / config.yml
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
path: %kernel.root_dir%/%database_path%.db
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
我已经创建了一个简单的表来进行一些测试。该表有一个整数自动增量'id'字段,'link'文本字段和'index'整数字段。
控制器很简单:
class testController extends Controller {
public function indexAction() {
$issue = new Issue();
$issue->setIndex(0);
$issue->setLink(array('http://example.com'));
$em = $this->getDoctrine()->getManager();
$em->persist($issue);
$em->flush();
return $this->render('TestLibrarianBundle:Test:index.html.twig');
}
}
当我尝试通过调用此控制器来执行请求时,出现以下错误:
request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\DBALException: "An exception occurred while executing 'INSERT INTO issue (index, link) VALUES (?, ?)':
SQLSTATE[HY000]: General error: 1 near "index": syntax error" at /.../.../vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 47
有关如何解决此问题的任何提示?
由于
答案 0 :(得分:0)
如果字段索引是sqlite关键字,可以命名吗?
答案 1 :(得分:0)
您的问题是INDEX
是SQL keyword。
如果您无法将ORM配置为正确转义名称(将其写为"index"
),则必须将字段名称更改为其他名称。