2013-08-11 3 views
1

Я пытаюсь для преобразования приложений запроса MySQL, но я получаю следующее сообщение об ошибке:питон ошибки MySQL 1064 У вас есть ошибка в вашем SQL синтаксисе

(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 \'C:/wamp/www/dle/uploads/posts/2013-08/1376251255-IMG11111674.jpg" >\n   \' at line 3') 

это мой питон код, который я хочу для преобразования приложений:

image_p_add = """ 
       <div> 
       <!--TBegin:%s|--> 
       <a href=\"%s\" onclick=\"return hs.expand(this)\" > 
       <img src=\"%s\" alt=\"%s\" title=\"%s\" /> 
       </a> 
       <!--TEnd--> 
       </div><br /><br /> 
       """ % (img_fulladd.replace("_", "\_"), img_fulladd.replace("_", "\_"), thumb_fulladd.replace("_", "\_"), post_header[1:-1], post_header[1:-1]) 
post_shrt_text = "some text" + image_p_add 
qu0 = """INSERT INTO dle_post (category, short_story) 
       VALUES 
        ('1', %s)""" % (post_shrt_text) 
cur.execute(qu0) 

Я проверил свой код и почти уверен, что нет пропущенных котировок.

img_fulladd и thumb_fulladd некоторые изображения адреса, такие как:

C:/wamp/www/dle/uploads/posts/2013-08/1376251255-IMG11111674.jpg 

post_header некоторый текст для заголовка в двойных кавычках

Любые идеи, что я могу делать неправильно?

+0

В вашем вопросе, кажется, что-то не хватает, так как ваш пример кода не содержит никаких вызовов MySQL. Можете ли вы показать часть кода, где вы действительно выполняете SQL-запрос? Похоже, что вашей проблеме будет помогать использование подготовленных инструкций, но трудно привести хороший пример, не видя код, который у вас уже есть. –

+0

@MartinAtkins sry для короткого кода, я завершил свой код –

ответ

0

Предоставляя драйверу MySQLdb для ввода параметров, вы должны давать лучшие результаты.

cur.execute(
    "INSERT INTO dle_post (category, short_story) VALUES ('1', %s)", (
     post_shrt_text, 
    ) 
) 

Это хорошо, чтобы позволить водителю справиться с этим, потому что он знает, как безопасно вставить строку в запросе, не позволяя для инъекции SQL.

Смежные вопросы