Rumah  >  Soal Jawab  >  teks badan

Tajuk yang diperbetulkan: Menjelaskan ralat "Nilai DOUBLE salah dipenggal" dalam Penyambung MySQL dengan Python dan menyediakan cara untuk membetulkannya

Mesej ralat pertama:

mysql.connector.errors.DataError: 1292 (22007): 截断错误的DOUBLE值:

\----------------------------------------------------------------------------------------------

Saya telah mencuba berkali-kali untuk mencari penyelesaian dalam talian dan telah melihat pengguna lain menghadapi masalah yang sama.

Malangnya, ini tidak menyelesaikan masalah saya. Saya telah menemui penyelesaian yang serupa untuk masalah saya dengan menggoogling, tetapi itu tidak membantu sama ada.

Baiklah, masalahnya ialah saya terus mendapat ralat berikut daripada pycharm:

mysql.connector.errors.DataError: 1292 (22007): 截断错误的DOUBLE值:

Apa sebenarnya maksud ini?

Adakah terdapat sesuatu yang salah dengan pangkalan data saya?

Apa masalahnya?

Ini jadual yang saya buat:

CREATE TABLE `employee` (
    `emp_id` INTEGER NOT NULL,
    `emp_name` VARCHAR (17) NOT NULL,
    `emp_last_name` VARCHAR (17) NOT NULL,
    `emp_email` VARCHAR (17) NOT NULL,
    `emp_status` VARCHAR (17) NOT NULL,
    PRIMARY KEY (`emp_id`)
);

Saya ingin mengemas kini pengguna menggunakan Python.

Kod adalah seperti berikut:

def update function(emp_id, emp_name, emp_last_name, emp_email, emp_status):
    emp_data = mysqlconn.cursor()
    sql_update_query = ("UPDATE employee set emp_name = %s, emp_last_name = %s, emp_email = %s, emp_status = %s WHERE emp_id = %s")
    updated_data = (emp_id, emp_name, emp_last_name, emp_email, emp_status)
    emp_data.execute(sql_update_query,updated_data,)
    mysqlconn.commit()
    print("Data Updated")

Saya tidak nampak sebarang kesalahan tatabahasa.

P粉021708275P粉021708275404 hari yang lalu554

membalas semua(1)saya akan balas

  • P粉674757114

    P粉6747571142023-09-13 09:51:28

    Anda mempunyai susunan yang salah dalam data anda:

    def update function(emp_id, emp_name, emp_last_name, emp_email, emp_status):
        emp_data = mysqlconn.cursor()
        sql_update_query = "UPDATE employee set emp_name = %s, emp_last_name = %s, emp_email = %s, emp_status = %s WHERE emp_id = %s"
        updated_data = ( emp_name, emp_last_name, emp_email, emp_status, emp_id)
        emp_data.execute(sql_update_query,updated_data)
        mysqlconn.commit()
        print("Data Updated")

    Pemegang tempat untuk emp_id ialah yang terakhir, tetapi anda meletakkan nilai di kedudukan pertama, jadi anda perlu menukarnya. Selain itu, saya mengalih keluar beberapa kurungan dan koma yang tidak diperlukan.

    balas
    0
  • Batalbalas