Я изучаю использование Python с MySQL. Тот же запрос работает по-разному между Mysql и PyMySQL. Например: в консоли MySQL у меня есть таблица под названием «страницы»Недопустимый синтаксис при использовании PyMySQL
INSERT INTO pages (title,content) VALUES ("test title","test content")
И это работает. В Python я импортирую PyMySQL, создаю соединение, а затем введите cursor = "cur"
. Когда я запускаю:
cur.execute("INSERT INTO pages (title,content) VALUES ("test title","test content")")
.. он вызывает ошибку: недействительный синтаксис. Но когда я попробую это с держателем места:
cur.execute("insert into pages (title,content) values (%s,%s)",("test title","test content"))
Тогда это работает! Поэтому я был смущен, почему тот же запрос работает в MySQL, но не в python, и означает ли это, что я всегда должен использовать держатель места при использовании PyMySQL?
Благодаря
Да, вы должны использовать параметризованные запросы. Однако, если вы посмотрите на заявление, которое не работает, подумайте о том, как вы используете двойные кавычки. Вы в основном закрываете свою строку - вместо этого используйте одинарные кавычки, и она тоже будет работать ... – sgeddes
Да, я вижу, такая ошибка новобранец –