У меня есть некоторые данные, хранящиеся в массиве, среди которых есть поле message
, которое может содержать разные типы символов. Среди них quotes characters
.Как вывести Mysql в PYTHON
import MySQLdb
for key, value in result_array.items():
insert_array.append("`%s` = \"%s\"" %(key, value))
insert_values = " , ".join(insert_array)
query_insert = "INSERT into `%s` SET %s ON DUPLICATE KEY UPDATE %s" %(insert_table, insert_values, insert_values)
cursor.execute(query_insert)
Этот код не работает, если message
содержит двойную кавычку. Как избежать этого?
P.S.
Я хочу сосредоточиться на разнице между connection.escape_string
и cursor.execute(operation, params=None, multi=True)
с params
. Был annwer (теперь удален), который предлагал использовать connection.escape_string
, а некоторые люди, которые ответили, сказали, что это не безопасно. Это связано с тем, что escape-запрос вручную может быть опасным, и лучше использовать функцию параметризации. [кто-то может быть лучше, чем у меня в объяснении этой концепции, пожалуйста, добро пожаловать, чтобы изменить эту часть]
Какой модуль python вы используете для подключения к MySQL? –
'MySQLdb' Обновление моего вопроса – salvob
Почему * heck * Вы используете форматированную строку для SQL? Вы должны почти никогда не делать этого. Он приглашает SQL-инъекцию. – jpmc26