Problem med UPDATE (prepared statements)

Tags:    stmt update php sql mysql

Hej.

Hvor er fejlen i følgende UPDATE? Jeg får følgende fejl:
"Fatal error: Call to a member function bind_param() on a non-object"

Fold kodeboks ind/udPHP kode 


$user_id hentes ind ved session



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
I din prepare skal du bruge ? for at declare en senere variabel. Derefter skal de sættes i logisk rækkefølge i bind param



Har du forsøgt at gøre således:
Fold kodeboks ind/udPHP kode 

Så skulle det jo virke.



Har ikke prøvet med lige præcis den opsætning, men det er vel underordnet hvor værdien på parametrene sættes.

Med din opsætning (Og tak for hjælpen) giver den mig følgende:
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement

Så vidt jeg kan se er der 7 parametre i prepare, 7 i bind_param, og 7 i $_POST.

Jeg har prøvet at sætte user_id som en parameter også, men det giver sammen fejlmeddelelse



lige efter din $db->prepare(...); kan du skrive die($db->error); - så finder du ud af om der er problemer med din SQL.

Hvis der ikke er nogle problemer kan du efter $stmt->execute(); skrive die($stmt->error); - så finder du ud af om der er problemer med dine binds.



Tak for hjælpen! nu fungerer det.

Til interesserede:

Fold kodeboks ind/udPHP kode 




Tak for hjælpen! nu fungerer det.

Til interesserede:

Fold kodeboks ind/udPHP kode 


jeg ville nok køre $user_id igennem prepare også hvis det var mig, men godt du fik det løst.



Disse prepared statements er til gavn for sikkerheden også. Du behøver ikke selv strippe dem, hvis du bruger det rigtigt. Der for er et godt råd; ingen variabler i din prepare, hold dem i din bind.
Og hvor du sætter user_id er mig en gåde godt nok...



t