WPDB Preparado Excluir

Estou tentando excluir uma linha do meu DB.I estou usando inputs do usuário e eu preciso ser capaz de desinfetar usando a instrução preparada.

A consulta em si parece ser –

DELETE FROM wp_thing_assignment WHERE (account_number,user) values (1, 'DudeDev') 

Estou usando o seguinte código –

  $success = $this->wpdb->query($this->wpdb->prepare( "DELETE FROM $this->table_name WHERE (account_number,user) values (%d, %s)", array ( $this->company[$i], $this->employee) )); 

Recebo esse erro –

Você tem um erro na sua syntax SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a syntax certa usar próximo de “valores (1, ‘USUÁRIO’) ‘na linha 1

Existe alguma maneira de salvar essa consulta?

Solutions Collecting From Web of "WPDB Preparado Excluir"

Eu acho que você acabou de confundir syntax com INSERT 🙂 De acordo com o manual, a syntax DELETE é :

 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [PARTITION (partition_name,...)] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 

Sem VALUES .

Em vez de formar esta consulta manualmente, você deve considerar usar $wpdb->delete() helper .

UPDATE – (SOLVED) Minha consulta agora parece –

  // Using where formatting. $success = $this->wpdb->delete( $this->table_name, array( 'account_number' => $this->company[$i], 'user' => $this->employee ), array( '%d','%s' ) ); 

Isso funciona perfeitamente.