PHP update virker ikke

Tags:    php mysql update


Hej

Jeg prøver på at lave en rette side til min opgave, men jeg kan simpelthen ikke få den til at opdatere min database. Jeg har kigget mine gamle projekter igennem for at se om der er noget jeg har gjort forkert, men jeg kan ikke lige se det - håber i kan hjælpe mig :)



Fold kodeboks ind/udPHP kode 




6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
kunne det være 80'erne, der er problemet? :)

Kig godt på dit endelige statement:

Fold kodeboks ind/udSQL kode 


Dette vil fejle, da din ' i din tekst (80'erne) har en betydning i SQL, og derfor skal escapes (du kan tilmed se problemet illustreret af code-highlight).

Hvis du derimod afvikler følgende udtryk:

Fold kodeboks ind/udSQL kode 


vil det spille, antaget at din tabel hedder "tekst", har kolonnerne "tekst_id", "overskrift" og "tekst", samt en record med tekst_id = 2.

Prøv det evt. af i en SQL editor (phpMyAdmin er fin), så du kan se og forstå forskellen :)

Løsningen på problemet finder du i mysql_real_escape_string()
Se her




Indlæg senest redigeret d. 25.08.2014 12:10 af Bruger #12476
hedder din tabel "tekst", og har den en kolonne med samme navn?

Prøv at outputte/dumpe din $omslips variabel, og se om dit udtryk giver mening.



Jeg har prøvet at skifte navnet, men det virker stadig ikke.

Fold kodeboks ind/udPerl kode 




ahh

Jeg har ikke læst teksten jeg fik den bare udleveret. Det er et problem som jeg ikke har været ramt før (Er ny til php)

Tak for hjælpen :D



Uha, det kunne have været meget værre.. tænk hvis Bobby Tables var kommet forbi? Exploits of a mom

Du skal ALTID sanitere dit datainput. Netop fordi, som du selv siger, du ikke kender det :)

Hvis projektet er småt og uden "konsekvenser" hvis det skulle blive hacket, kan du slippe afsted med at køre alt dit input (og jeg mener ALT) igennem mysql_real_escape_string(). Er dette derimod ikke tilfældet, vil jeg anbefale dig at se nærmere på prepared statements og evt. PDO, din nybegynder status til trods. Du kan lige så godt lære det rigtigt fra starten af, det bliver du glad for i længden ;)



Som Kristian skriver vil mysql_real_escape_string() få styr på dit lille problem.

Jeg giver også Kristian ret i at det vil være en god idé at kigge på PDO. Det kan være en anelse forvirrende i starten, men når først man er kommet ind i det, er det noget af det bedste at arbejde med når man skal lave database-kald.

God fornøjelse :P



t