【问题标题】:symfony2 propel-bundle + postgres: syntax error near "."symfony2 propel-bundle + postgres:“。”附近的语法错误
【发布时间】:2014-04-02 21:42:19
【问题描述】:

这是我的登录表单,它使用 propel 作为用户提供程序,我得到了这个我可以理解的错误,没有引用标识符:

和错误:

Unable to execute SELECT statement [SELECT user.id, user.username, user.password, user.email, user.type, user.first_name, user.last_name, user.national_code, user.personal_code, user.role, user.card, user.university_id, user.salt, user.active, user.created_at, user.updated_at FROM user WHERE user.username=:p1 LIMIT 1] [wrapped: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "." LINE 1: SELECT user.id, user.username, user.password, user.email, us... ^]

我的推进配置:

propel:
    path:           "%kernel.root_dir%/../vendor/propel"
    phing_path:     "%kernel.root_dir%/../vendor/phing"
    logging:        %kernel.debug%
    dbal:
        default_connection: default
        connections:
            default:
                driver:     %database_driver%
                user:        %database_user%
                password:   %database_password%
                dsn:        %database_driver%:host=%database_host%;dbname=%database_name%
                options:
                    ATTR_PERSISTENT: false
                attributes:
                    ATTR_EMULATE_PREPARES: true
                settings:
                    charset: { value: UTF8 }
    build_properties:
        propel.database: %database_driver%
        propel.database.url: ${propel.dsn}
        propel.database.buildUrl: ${propel.database.url}
        propel.database.createUrl: ${propel.database.buildUrl}
        propel.database.user: %database_user%
        propel.database.password: %database_password%
        propel.platform.class: platform.${propel.database}Platform
        propel.disableIdentifierQuoting: false

还有我的提供者配置:

providers:
    main:
        propel:
            class:             National\PublicationBundle\Model\User
            property:          username

我的配置有问题吗?我还在 github 上找到了this 并相应地更改了我的代码,但它并没有改变什么,我做了什么:

\$sql = sprintf(
'$query',
    implode(', ', array_map(function(\$e) { return '\"'.\$e.'\"' ; }, \$modifiedColumns)),
    implode(', ', array_keys(\$modifiedColumns))

);

还有一件事:当我使用 php app/console propel:build:sql 生成 sql 时,正确引用了 sql 代码。

【问题讨论】:

  • 回答:用户是保留字!所以只需将其更改为用户并解决! :\

标签: postgresql symfony propel


【解决方案1】:

回答:user是保留字!所以只需将其更改为用户并解决! :\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多