Невозможно вставить данные mysql с помощью python с помощью pymysql [closed]

В вашем случае файл подкачки является «/ swapfile», но вы можете изменить его по своему вкусу, просто замените «/ swapfile» на ваш желаемый пункт назначения.

Лучшее место для изучения мнения, но я бы предпочел бы быстрое хранение (т. е. SSD), но имейте в виду, что он имеет ограниченный жизненный цикл, так что он очень основан на мнениях), если система меняет местами.

EDIT: Если вы хотите чтобы использовать этот файл пилы каждый раз при загрузке, вы можете добавить запись в свой файл / etc / fstab, например

/swapfile    none    swap    sw      0 0

EDIT2: Возможно, вы захотите использовать диск, t при постоянной высокой IO-нагрузке из-за чего-то еще.

0
задан 20 April 2018 в 22:28

6 ответов

Вы неправильно поняли, как использовать интерфейс python.

cnx = mysql.connector.connect(user='root',password='******',
                              host='localhost',
                              database='temp-at-interrupt')
cnx.close()

Здесь вы подключаетесь, а затем закрываете соединение. После этого, даже не определяя ваш курсор cur, вы пытаетесь выполнить запрос с ним. Это не сработает.

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

Документация mysql предоставляет этот пример, который показывает его поток:

import mysql.connector

cnx = mysql.connector.connect(user='scott', database='employees')
cursor = cnx.cursor()

tomorrow = datetime.now().date() + timedelta(days=1)

add_employee = ("INSERT INTO employees "
               "(first_name, last_name, hire_date, gender, birth_date) "
               "VALUES (%s, %s, %s, %s, %s)")
add_salary = ("INSERT INTO salaries "
              "(emp_no, salary, from_date, to_date) "
              "VALUES (%(emp_no)s, %(salary)s, %(from_date)s, %(to_date)s)")

data_employee = ('Geert', 'Vanderkelen', tomorrow, 'M', date(1977, 6, 14))

# Insert new employee
cursor.execute(add_employee, data_employee)

emp_no = cursor.lastrowid

# Insert salary information
data_salary = {
  'emp_no': emp_no,
  'salary': 50000,
  'from_date': tomorrow,
  'to_date': date(9999, 1, 1),
}
cursor.execute(add_salary, data_salary)

# Make sure data is committed to the database
cnx.commit()

cursor.close()
cnx.close()

Здесь вы четко видите поток подключения к базе данных, создаете курсор, выполняете запросы, передаете результат в БД и, наконец, очищаете и закрываете подключение.

2
ответ дан 22 May 2018 в 11:19
  • 1
    Я обновил свой пост, вы можете проверить? – Njord Nyström 20 April 2018 в 22:47
  • 2
    Распечатайте инструкцию SQL и убедитесь, что она действительна. Посмотрите на , показывая ошибки . Быстрый взгляд указывает, что количество столбцов и количество параметров не совпадают. – vidarlo 20 April 2018 в 22:54
  • 3
    Хммм, я думаю, что получил. Я создаю таблицу из своего phpadmin (localhost), не созданного с помощью кода. Разве это имеет значение? – Njord Nyström 21 April 2018 в 00:32
  • 4
    Нет, это не имеет значения, если типы данных верны. Но напечатайте инструкцию sql и попробуйте в mysql напрямую. Это вызовет любые ошибки. – vidarlo 21 April 2018 в 00:41
  • 5
    Я могу вставлять данные в phpmyadmin вручную. Вероятно, я не могу выполнить код '' INSERT в 'TAB_TEMP' в моем скрипте. Этот код не доходит до моего phpadmin или моего сценария write and rollback sametime. – Njord Nyström 21 April 2018 в 17:35

Вы неправильно поняли, как использовать интерфейс python.

cnx = mysql.connector.connect(user='root',password='******', host='localhost', database='temp-at-interrupt') cnx.close()

Здесь вы подключаетесь, а затем закрываете соединение. После этого, даже не определяя ваш курсор cur, вы пытаетесь выполнить запрос с ним. Это не сработает.

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

Документация mysql предоставляет этот пример, который показывает его поток:

import mysql.connector cnx = mysql.connector.connect(user='scott', database='employees') cursor = cnx.cursor() tomorrow = datetime.now().date() + timedelta(days=1) add_employee = ("INSERT INTO employees " "(first_name, last_name, hire_date, gender, birth_date) " "VALUES (%s, %s, %s, %s, %s)") add_salary = ("INSERT INTO salaries " "(emp_no, salary, from_date, to_date) " "VALUES (%(emp_no)s, %(salary)s, %(from_date)s, %(to_date)s)") data_employee = ('Geert', 'Vanderkelen', tomorrow, 'M', date(1977, 6, 14)) # Insert new employee cursor.execute(add_employee, data_employee) emp_no = cursor.lastrowid # Insert salary information data_salary = { 'emp_no': emp_no, 'salary': 50000, 'from_date': tomorrow, 'to_date': date(9999, 1, 1), } cursor.execute(add_salary, data_salary) # Make sure data is committed to the database cnx.commit() cursor.close() cnx.close()

Здесь вы четко видите поток подключения к базе данных, создаете курсор, выполняете запросы, передаете результат в БД и, наконец, очищаете и закрываете подключение.

2
ответ дан 17 July 2018 в 16:28

Вы неправильно поняли, как использовать интерфейс python.

cnx = mysql.connector.connect(user='root',password='******', host='localhost', database='temp-at-interrupt') cnx.close()

Здесь вы подключаетесь, а затем закрываете соединение. После этого, даже не определяя ваш курсор cur, вы пытаетесь выполнить запрос с ним. Это не сработает.

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

Документация mysql предоставляет этот пример, который показывает его поток:

import mysql.connector cnx = mysql.connector.connect(user='scott', database='employees') cursor = cnx.cursor() tomorrow = datetime.now().date() + timedelta(days=1) add_employee = ("INSERT INTO employees " "(first_name, last_name, hire_date, gender, birth_date) " "VALUES (%s, %s, %s, %s, %s)") add_salary = ("INSERT INTO salaries " "(emp_no, salary, from_date, to_date) " "VALUES (%(emp_no)s, %(salary)s, %(from_date)s, %(to_date)s)") data_employee = ('Geert', 'Vanderkelen', tomorrow, 'M', date(1977, 6, 14)) # Insert new employee cursor.execute(add_employee, data_employee) emp_no = cursor.lastrowid # Insert salary information data_salary = { 'emp_no': emp_no, 'salary': 50000, 'from_date': tomorrow, 'to_date': date(9999, 1, 1), } cursor.execute(add_salary, data_salary) # Make sure data is committed to the database cnx.commit() cursor.close() cnx.close()

Здесь вы четко видите поток подключения к базе данных, создаете курсор, выполняете запросы, передаете результат в БД и, наконец, очищаете и закрываете подключение.

2
ответ дан 23 July 2018 в 17:20

Ваш оператор insert пытается вставить 3 значения (дата, время, температура), но вы поставляете только 2 (datetimeWrite, temp). Он не может работать. Кроме того, как указано vidarlo, вы действительно должны заглядывать в ошибки. Простое задание печати, указанное в ссылке, может вам помочь:

...
except mysql.connector.Error as err:
  print("Something went wrong: {}".format(err))
...
0
ответ дан 22 May 2018 в 11:19

Ваш оператор insert пытается вставить 3 значения (дата, время, температура), но вы поставляете только 2 (datetimeWrite, temp). Он не может работать. Кроме того, как указано vidarlo, вы действительно должны заглядывать в ошибки. Простое задание печати, указанное в ссылке, может вам помочь:

... except mysql.connector.Error as err: print("Something went wrong: {}".format(err)) ...
0
ответ дан 17 July 2018 в 16:28

Ваш оператор insert пытается вставить 3 значения (дата, время, температура), но вы поставляете только 2 (datetimeWrite, temp). Он не может работать. Кроме того, как указано vidarlo, вы действительно должны заглядывать в ошибки. Простое задание печати, указанное в ссылке, может вам помочь:

... except mysql.connector.Error as err: print("Something went wrong: {}".format(err)) ...
0
ответ дан 23 July 2018 в 17:20

Другие вопросы по тегам:

Похожие вопросы: