PHP Fatal error: Uncaught Error: Call to a member function free()

B

Estaba todo bien hasta que utilicé la función NOW() en FechaMOD

$RefreshEstado = $db->query("UPDATE pedidos SET estado='".$estado."', status='".$status."', FechaMOD= NOW() WHERE id = '".$NumeroOrden."'");

y ahora me da error en la línea

$RefreshEstado->free(); 

¿que estoy haciendo mal?

Korvael

Utilizar PHP :new_moon_with_face:

3 1 respuesta
B

#2 no te comprendo

R

Hola Tiancos,

Revisa que ese NOW() no te lo interprete PHP ya que es una función de mysql. Por otro lado te diría que no pases las variables directamente al texto puesto que puedes tener problemas.

Si haces una select y haces lo mismo puedo escribir que mi variable sea "1 OR 1=1" mas informacion aqui https://backtrackacademy.com/articulo/inyeccion-sql-definicion-y-ejemplos

Para esto te aconsejo que hagas sentencias preparadas, mas información aqui https://www.w3schools.com/php/php_mysql_prepared_statements.asp

Por ultimo si estas haciendo cositas con PHP te aconsejo que aprendas Laravel y sigas sus pautas y estructuras. También infórmate sobre DDD, esta gente explica bien y esta en castellano https://www.youtube.com/channel/UC9IKtxn9AIGelnYmwYr0Lxw

Suerte!!

ShodawN

#1 Te has dejado bastante información por el camino.
PHP, qué versión?
La BD es mySQL? qué versión?
Qué error te da?

La query que haces yo la veo bien.
Puede que te estés rayando con esa línea y el problema está en lo que haces entre la query y el free. Piensa que PHP se ejecuta como script (no compilado), así que dejarte un punto y coma o lo que sea que no le cuadre puede hacer que te aparezca el error en una línea pero que en realidad el error se produzca antes.

Un fragmento de código más amplio también sería de agradecer. Porque al ser un update igual no tienes nada entre las dos sentencias... pero si no compruebas el resultado de la query (con un if(query === TRUE) por ejemplo) igual te está dando un error la query y te peta cuando intentas hace null->free() (porque la query no te ha dado el objeto result esperado).

Usuarios habituales