MySQL Вставить строку со вставками Python как отдельные символы - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь сделать простую вставку с помощью python

mydb = mysql.connector.connect(
  host="localhost",
  user="**",
  passwd="**"
)

mycursor = mydb.cursor()

sql = "INSERT INTO sponge_cakes.links (`url`) VALUES (%s)"
val = ("test1")

mycursor.executemany(sql, val)

mydb.commit()

Этот тип работает, но он вставляет строку символ за символом (создавая новую запись для каждого символа)

Как мне заставить его вставить всю строку, чтобы она выглядела так

id  | link
1   | test1

Вместо

id  | link
1   | t
2   | e
...

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Проблема в том, что вы используете mycursor.executemany(sql, val), который предназначен для запуска одного и того же оператора SQL с несколькими значениями.

Может показаться, что "test1" - это всего лишь одно слово, но слово также можетследует рассматривать как последовательность символов, и именно это executemany интерпретирует как.

Измените его на mycursor.execute(sql, val), и оно будет работать, как и ожидалось, с одним значением.

0 голосов
/ 03 февраля 2019

mycursor = mydb.cursor ()

sql = "INSERT INTO sponge_cakes.links (url) ЗНАЧЕНИЯ (% s)"

val = ("Дора")

mycursor.execute (sql, val)

mydb.commit () # внесите изменения

print (mycursor.rowcount, "запись вставлена.")

попробуй!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...