Error 1064 (42000) when executing UPDATE SQL - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Error 1064 (42000) when executing UPDATE SQL (/thread-40030.html) |
Error 1064 (42000) when executing UPDATE SQL - gratiszzzz - May-21-2023 Good afternoon: I am trying to run an UPDATE query in SQL from python. I think the statement is correct, but it constantly returns an error. I do not know what to do... --------------------------------------------------------- UPDATE ps_product_lang SET description = '--', name = 'Ratón óptico Standard USB' WHERE id_product = 278335 AND id_lang = 1; --------------------------------------------------------- this is the sql i am using Can somebody help me? Thank you so much! RE: Error 1064 (42000) when executing UPDATE SQL - gratiszzzz - May-21-2023 sql_actualizar_ficha_es = "UPDATE ps_product_lang SET description = '--', name = '" + titulo + "' WHERE id_product = " + id_producto + " AND id_lang = 1;" sql_actualizar_ficha_pt = "UPDATE ps_product_lang SET description = '--', name = '" + titulo_pt + "' WHERE id_product = " + id_producto + " AND id_lang = 2;" sql_registrar_id_producto = "INSERT INTO fichas_actualizadas (id_product) VALUES ('" + id_producto + "');" connection = create_connection("######", "######", "########", "######") # consulta1 = execute_query(connection, sql_actualizar_ficha_es) consulta2 = execute_query(connection, sql_actualizar_ficha_pt) RE: Error 1064 (42000) when executing UPDATE SQL - ibreeden - May-22-2023 Which database are you using? Please show us your program and the complete error message. You are calling execute_query(). Where is it defined? RE: Error 1064 (42000) when executing UPDATE SQL - gratiszzzz - May-22-2023 (May-22-2023, 07:18 AM)ibreeden Wrote: Which database are you using? Please show us your program and the complete error message. Hi ibreeden! I am using MariaDB. def create_connection(host_name, user_name, user_password, db_name): connection = None try: connection = mysql.connector.connect( host=host_name, user=user_name, passwd=user_password, database=db_name ) except Error as e: falla_conexion = 1 print("lo que esta fallando es la conexion") return connection def execute_query(connection, query): cursor = connection.cursor() try: cursor.execute(query) print("La consulta se ejecutó correctamente.") return 1 except Error as e: print("Hubo un error al ejecutar la consulta: " + str(e)) return 0 finally: cursor.close() def execute_read_query(connection, query): cursor = connection.cursor() result = None try: cursor.execute(query) result = cursor.fetchall() return len(result) except Error as e: print("The error consulta numerica occurred") sql_actualizar_ficha_es = "UPDATE ps_product_lang SET description = '--', name = '" + titulo + "' WHERE id_product = " + id_producto + " AND id_lang = 1;" sql_actualizar_ficha_pt = "UPDATE ps_product_lang SET description = '--', name = '" + titulo_pt + "' WHERE id_product = " + id_producto + " AND id_lang = 2;" sql_registrar_id_producto = "INSERT INTO fichas_actualizadas (id_product) VALUES ('" + id_producto + "');" connection = create_connection("?????", "¿¿¿¿¿", "???????", "???????") consulta1 = execute_query(connection, sql_actualizar_ficha_es) consulta2 = execute_query(connection, sql_actualizar_ficha_pt) print("-----------------------------------------") print(sql_actualizar_ficha_es) if consulta1 == 1 and consulta2 == 1 : consulta3 = execute_query(connection, sql_registrar_id_producto)The error output that appears when running the script is: Hubo un error al ejecutar la consulta: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 Hubo un error al ejecutar la consulta: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 ----------------------------------------- UPDATE ps_product_lang SET description = '--', name = 'Teclado Value con cable' WHERE id_product = 278333 AND id_lang = 1; Something that really catches my attention is that if I take the same sql query that I'm trying to execute in the script with the error and paste it into phpmyadmin, it runs without any problem. I am completely lost..... Thank you so much! RE: Error 1064 (42000) when executing UPDATE SQL - ibreeden - May-22-2023 That is weird, everything seems to be correct. Perhaps you should not use the semicolon ( ; ) at the end. The semicolon is primarily used as a statement terminator in client mode. I think you do not need it in this case because the string just ends which is a clear ending of the query. RE: Error 1064 (42000) when executing UPDATE SQL - gratiszzzz - May-22-2023 Yeah. I had also thought about it and tried with ";" and without ";". But nothing, it looks like the same error... I'll keep testing until I find the error... Thank you very much for your help. If I find the solution I will reply with it! RE: Error 1064 (42000) when executing UPDATE SQL - gratiszzzz - May-22-2023 Solved!!!!!! It was the mixture of 2 errors: On the one hand, the product_id was a text string that had characters that were not numbers. On the other hand I had forgotten to use connection.commit() in the function execute_query() Finally solved... Thank you very much! RE: Error 1064 (42000) when executing UPDATE SQL - buran - May-22-2023 You shouldn't be using string concatenation to construct SQL statements |