Arash Tabrizian
Arash Tabrizian

Reputation: 146

symfony2 propel-bundle + postgres: syntax error near "."

this is for my login form which uses propel as user provider, I get this error which I can understand from, that identifiers are not quoted:

and error:

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... ^]

my propel configuration:

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

and also my provider config:

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

is something wrong with my config? I also found this on github and changed my code accordingly but it did change nothing, what I did:

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

);

one more thing: when I generate sql wih php app/console propel:build:sql, sql codes are quoted correctly.

Upvotes: 0

Views: 344

Answers (1)

Arash Tabrizian
Arash Tabrizian

Reputation: 146

answer: user is a reserved word! so just changed it to users and solved! :\

Upvotes: 0

Related Questions