On 5 Απρ, 05:49, "eryksun ()" <eryk...@gmail.com> wrote:
> On Monday, April 4, 2011 9:40:33 AM UTC-4, Νικόλαος Κούρας wrote:
>
> In one of your messages you wrote the following:
>
> > cursor.execute( '''INSERT INTO users(mail, comment) VALUES(%s,
> > %s)''', (mail, comment) )
> > except MySQLdb.Error:
> > print ( "Error %d: %s" % (e.args[0], e.args[1]) )
>
> Is this a typo in your message or the actual code? If 'e' is unassigned you 
> should be getting a NameError. The standard Python2 syntax (before version 
> 2.6) is the following:
>
>     except MySQLdb.Error, e:
>         print("Error %d: %s" % (e.args[0], e.args[1]))
>
> You also wrote:
> > mail = None, comment = None
>
> This should cause a SyntaxError because it's trying to assign None = None. 
> That's assuming it's on line 167, after the cursor.execute(...) on line 166.
>
> > Whats was the problem as i have written it?
> > Your solution is the same as mine except the fact that you assign
> > values and statements into variables.
>
> I was just rewriting it to make sure I was parsing it right.
>
> > I tried it but iam getting an Internal Server Error.
>
>
> > Also i noticed that if i append a query string in the end of a url
> > with the varibble mail attached like
>
> >http://superhost.gr/hosting.html?mail=test
>
> > then page hosting.html does load without any problem.
>
> > If i remove the query string from the ned of the URL then i'am getting
> > the error message i posted.
>
> > So its not that the if condition is wrong but something happens with
> > the form variable 'mail' .....
>
> Insert a test to print out the type and value of 'mail' for various inputs.
>
> Regarding the message itself, on Python 2.7.1, I get the following TypeError 
> message if I try iterate None:
>
>     TypeError: argument of type 'NoneType' is not iterable
>
> Python 2.5.2 on "http://shell.appspot.com"; yields the same error. Version 2.5 
> improved the error messages to include the type of the object (see issue 
> 1507676). The message "iterable argument required" looks like an older 
> version of CPython.

Thank you you were right.

The trouble was in `if "@" in mail` .
You can only test somthing `in` something else if the second thing is
iterable and None isnt.

So i made the code look like this:

[code]
if ( mail is not None and '@' in mail ) and comment not in ("Ρωτήστε
με σχετικά...", "", None):
[/code]

Now it works like i wanted but i want to ask you if i wrote it
correctly, especially when i check against `""` and None

And please explain to me the difference betweeen an empty string `""`
and None.
An empty string is still a string with zero characters within?

> Yes, I made a mistake. It should have been `cursor.execute(SQL_COMMENT_FORM, 
> (mail, comment))`, using a >comma instead of a '%' to have it generate SQL 
> string literals from the tuple.

What do you mean by  "to have it generate SQL string literals from the
tuple." Please explain
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to