# Error al querer borrar un registro en MySql

**URL:** <https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291>\
**Category:** Sin categoría\
**Created:** [27 Mayo, 2024 20:48 UTC](https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291 "2024-05-27T20:48:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hertux](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/hertux/32/490_2.png) [@Hertux](https://pyar.discourse.group/u/Hertux)\
**Post date:** [27 Mayo, 2024 20:48 UTC](https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291/1 "2024-05-27T20:48:38Z")

</div>

Hola como andan. Tengo un inconveniente, a ver si a alguien le ha pasado.  
Quiero eliminar un registro de una tabla en MySql y me tira error cuando uso %s… Acá les paso el código y el error que larga.

def delete\_data(self):  
if self.matricula\_var.get()==“” or self.nombre\_var.get()==“” or self.email\_var.get()==“” or self.genero\_var.get()==“” or self.telefono\_var.get()==“” or self.fecnac\_var.get()==“”:  
messagebox.showerror(“Error”, “Seleccione el registro a eliminar”)  
else:   
con=mysql.connector.connect(host=“localhost”, user=“root”, password=“”, database=“studentm”)  
cur=con.cursor()  
**cur.execute(“delete from estudiantes where matricula=%d”,self.matricula\_var.get())**  
con.commit()  
self.fetch\_data()  
self.clear()  
messagebox.showinfo(“Eliminar”, “Se eliminó correctamente el registro”)  
con.close()

Este es el código y me tira el siguiente error:

cur.execute(“delete from estudiantes where matricula=%d”,self.matricula\_var.get())  
File “/usr/lib/python3/dist-packages/mysql/connector/cursor\_cext.py”, line 359, in execute  
prepared = self.\_cnx.prepare\_for\_mysql(params)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/lib/python3/dist-packages/mysql/connector/connection\_cext.py”, line 880, in prepare\_for\_mysql  
raise ProgrammingError(  
mysql.connector.errors.ProgrammingError: Could not process parameters: str(47765), it must be of type list, tuple or dict

---

<div class="post-metadata">

**Author:** ![javiermarcon](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/javiermarcon/32/334_2.png) [@javiermarcon](https://pyar.discourse.group/u/javiermarcon)\
**Post date:** [28 Mayo, 2024 13:32 UTC](https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291/2 "2024-05-28T13:32:27Z")

</div>

El error te está diciendo la causa, le estas pasando un texto como  
parametro, pero espera una list o tupla o diccionario, porque puede  
haber varios parametros si se especificase otra sentencia sql.

Podes pnerlo asi:  
_cur.execute(“delete from estudiantes where matricula=%d”,  
[self.matricula\_var.get()])_

Saludos,

Javier.

---

<div class="post-metadata">

**Author:** ![Hertux](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/hertux/32/490_2.png) [@Hertux](https://pyar.discourse.group/u/Hertux)\
**Post date:** [28 Mayo, 2024 14:06 UTC](https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291/3 "2024-05-28T14:06:46Z")

</div>

Hola Javier. Muchisimas gracias por la respuesta. Ahora lo pruebo.

---

<div class="post-metadata">

**Author:** ![Hertux](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/hertux/32/490_2.png) [@Hertux](https://pyar.discourse.group/u/Hertux)\
**Post date:** [28 Mayo, 2024 22:55 UTC](https://pyar.discourse.group/t/error-al-querer-borrar-un-registro-en-mysql/1291/4 "2024-05-28T22:55:58Z")

</div>

Muchas gracias Javier nuevamente. Anduvo perfecto. Solo cambie %d por %s porque me habia equivocado cuando hice la consulta. Me faltaban los corchetes al ser una tupla. Gracias por tu ayuda. Saludos cordiales
