Обсуждение: problem creating users via pythons script
this is really newb of me but i can't manage to make a script to create
users.
cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
""",(StaffUserName,NewPassword,StaffGroup))
produces this error
ERROR: syntax error at or near "'bob.smith'" at character 13
is it because i need to double quote or something? i'm sure the answer
is stupid and i'm just too tired.
On Jul 19 10:02, Timothy Smith wrote:
> cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
> """,(StaffUserName,NewPassword,StaffGroup))
>
> produces this error
>
> ERROR: syntax error at or near "'bob.smith'" at character 13
IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
quote any parameter you specified. Please try to use python parameters,
that are "% (param1, param2, ...)", only for values; not for any other
place in the query string.
To summarize, you can only use parameters for values, not keys.
Regards.
On Jul 19 10:40, Timothy Smith wrote:
> Volkan YAZICI wrote:
> >On Jul 19 10:02, Timothy Smith wrote:
> >
> >>cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
> >>""",(StaffUserName,NewPassword,StaffGroup))
> >>
> >>produces this error
> >>
> >>ERROR: syntax error at or near "'bob.smith'" at character 13
> >>
> >
> >IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
> >quote any parameter you specified. Please try to use python parameters,
> >that are "% (param1, param2, ...)", only for values; not for any other
Edit: «% (param1, param2, ...)» part must be replaced with
«"query_str", param1, param2, ...»
> >place in the query string.
> >
> >To summarize, you can only use parameters for values, not keys.
>
> ...
> ah ok so how do i do it :/
Just don't pass username as parameter to Cursor.execute(), for instance:
cur.execute("CREATE USER %s WITH PASSWORD %s IN GROUP %s"
% (StaffUserName, NewPassword, StaffGroup))
Regards.
P.S. Please don't forget to CC mailing list next time. Also, -interface
ml is more appropriate for these kind of questions.
Volkan YAZICI wrote:
> On Jul 19 10:40, Timothy Smith wrote:
>
>> Volkan YAZICI wrote:
>>
>>> On Jul 19 10:02, Timothy Smith wrote:
>>>
>>>
>>>> cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
>>>> """,(StaffUserName,NewPassword,StaffGroup))
>>>>
>>>> produces this error
>>>>
>>>> ERROR: syntax error at or near "'bob.smith'" at character 13
>>>>
>>>>
>>> IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
>>> quote any parameter you specified. Please try to use python parameters,
>>> that are "% (param1, param2, ...)", only for values; not for any other
>>>
>
> Edit: «% (param1, param2, ...)» part must be replaced with
> «"query_str", param1, param2, ...»
>
>
>>> place in the query string.
>>>
>>> To summarize, you can only use parameters for values, not keys.
>>>
>> ...
>> ah ok so how do i do it :/
>>
>
> Just don't pass username as parameter to Cursor.execute(), for instance:
>
> cur.execute("CREATE USER %s WITH PASSWORD %s IN GROUP %s"
> % (StaffUserName, NewPassword, StaffGroup))
>
>
> Regards.
>
> P.S. Please don't forget to CC mailing list next time. Also, -interface
> ml is more appropriate for these kind of questions.
>
>
>
of course, i should have seen that to begin with, cheers.