Я пытаюсь вставить некоторые значения в таблицу, и хотя строки создаются, значения не записываются. Вот мой код:Python pymysql INSERT INTO inserting empty values
for i in range(2,6):
for team in ul[i]:
name = team.string #string from html element
print(name) #this works just fine, and prints the desired name
cur.execute("INSERT INTO teams (Name) VALUES(name)")
conn.commit()
Теперь, если я ставлю VALUES("Test String")
вместо этого, он работает, добавляют 30 строк (то, что я хочу), и все с именем: «Test String».
Однако, когда я помещаю в свою переменную name
, строки также добавляются, но значения столбца пустые. Столбец, в который я помещаю строки, равен VARCHAR
. Есть ли что-то, что я не знаю о том, как интерпретируется оператор SQL в случае строковых переменных Python?
Это работает, спасибо! Я обнаружил, что тип переменной 'name' был' ', поэтому, вероятно, поэтому запрос не распознал его –
Tiberiu
Учитывая, что' name' исходит из HTML-формы или чего-то еще например, вы действительно должны использовать параметры запроса для вставки. Форматирование строк открывает возможность для SQL-инъекции. – tuomur