Hi guys,
my problem may be python only related but I dare posting here anyway. I try to create databases on the fly according to some user input. After searching on the net, I realized that I can't use the following statement as %s will be replaced by '%s'. And "CREATE DATABASE" statement forbids using quotes... So I decided to use python's sweet % concatenation to solve my problem (even though this could lead me to sql injection...) Here is my model : class myClass(models.Model): db_name = models.CharField('company name', unique='true', max_length = 50) def createAssociatedDatabase(self): """ Create the User Database """ cursor = connection.cursor() cursor.execute("CREATE DATABASE %s" % self.db_name) when I then use my method, I got the following error : >>> c.createAssociatedDatabase() Traceback (most recent call last): File "<console>", line 1, in <module> [...] admin/models.py", line 41, in createAssociatedDatabase cursor.execute("CREATE DATABASE user_%s" *%* (self.db_name)) File "/var/lib/python-support/python2.6/django/db/backends/util.py", line 19, in execute return self.cursor.execute(sql, params) File "/var/lib/python-support/python2.6/django/db/backends/mysql/base.py", line 83, in execute return self.cursor.execute(query, args) File "/var/lib/python-support/python2.6/MySQLdb/cursors.py", line 166, in execute self.errorhandler(self, exc, value) File "/var/lib/python-support/python2.6/MySQLdb/connections.py", line 35, in defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test'' at line 1") But ... In a shell : >>> c = myClass() >>> c.db_name = "test" >>> cursor.execute("CREATE DATABASE user_%s" % (c.db_name)) 1L Which is GOOD This means that the Quoting is done in my method and not when I use the execute myself ... any idea ? thank you very much ! -- sebastien requiem --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---