Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:08 Der er 32 kommentarer og
1 løsning

gemme ' i mysql

Hej...

hvordan gemmer man et ' tegn i mysql? får error :/
Avatar billede michael_stim Ekspert
09. februar 2005 - 13:17 #1
Er det ikke htmlentities($string);
Avatar billede gizp Nybegynder
09. februar 2005 - 13:18 #2
eller strip_slashes(); ? :S
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:21 #3
hvad gør strip_slashes()?
Avatar billede olebole Juniormester
09. februar 2005 - 13:21 #4
<ole>

Nok nærmere addslashes()  ;o)

$str = "blabla' og noget";
$str = addslashes($str);

/mvh
</bole>
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:22 #5
og er det en mysql funktion, eller noget man skal gøre "udefra"
Avatar billede michael_stim Ekspert
09. februar 2005 - 13:22 #6
Ja, den er nok bedre hvis det kun er til '. Den anden tager vist alle htmlkompatible tegn.
Avatar billede olebole Juniormester
09. februar 2005 - 13:23 #7
espeholt_jr >> Manualen er din ven  ;o)
  http://dk2.php.net/manual/da/function.addslashes.php
Avatar billede gizp Nybegynder
09. februar 2005 - 13:24 #8
olebole > Har du nok ret i, haha.

Det er ikke en MySQL funktion. Men den kan også laves i query'en.
mysql_query("INSERT INTO xxx (tekst) VALUES ('". addslashes($tekst) ."')");
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:39 #9
okay takker...

olebole opret svar ;)
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:46 #10
hmm prøvede lige at skrive \' istedet for '... det virkede ikke..

brugte ikke addsl...
Avatar billede olebole Juniormester
09. februar 2005 - 13:46 #11
Din seneste kommentar forstår jeg ikke
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 13:51 #12
altså... hvis jeg nu indsætter 'hej'hej'  så virker det jo ikke... addslashes gør vil så der kommer til at stå 'hej\'hej' right?... prøvede så lige at lave \ inden ', men hjalp ikke
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 14:03 #13
har fundet ud af det ;) man skal lave 2 '' fx hej''hej ;)
Avatar billede michael_stim Ekspert
09. februar 2005 - 14:06 #14
Eller også bruger du strip_slashes() når du henter det ud igen.
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 14:18 #15
hjælper da ikke...


er der en php funktion til at lave ' til ''?
Avatar billede olebole Juniormester
09. februar 2005 - 14:21 #16
Undskyld, men jeg fatter nada af, hvad du skriver. meningen med addslashes er jo netop at den sætter en backslash (add slashes) foran apostroffer, så de escapes for MySQL  :)
Avatar billede olebole Juniormester
09. februar 2005 - 14:23 #17
Når du så henter fra databasen fjerner du dine backslashes med stripslashes:

$str = stripslashes($row["FELT"]);
print $str;
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 14:27 #18
jep

MEN den vil ikke indsætte det med \', men det vil den med '' som den laver om til ' :)
Avatar billede michael_stim Ekspert
09. februar 2005 - 14:38 #19
Lyder mere som om du gemmer i en Accesdatabase ;o)
Burde virke med det vi har skrevet.
Avatar billede michael_stim Ekspert
09. februar 2005 - 14:39 #20
Pröv at brug den jeg skrev:
htmlentities($string);
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 15:06 #21
gør det ikke...

bruger mysql, og '' virker ;)

kan være det kommer an på mysql version?
Avatar billede olebole Juniormester
09. februar 2005 - 22:01 #23
Mmmmm ... der er masser af muligheder - men det kunne nu være mere interessant at finde ud af, hvorfor i alverden spørgerens DB ikke vil modtage en escaped enkelt-apostrof.
Vil den ikke det, er det vel cirka ligegyldigt hvilken funktion, man bruger til at escape med  :)
Avatar billede coderdk Praktikant
09. februar 2005 - 22:15 #24
olebole, det er vel fejlen der kommer hvis man prøver at lave f.eks.: INSERT INTO tabel SET tekstfelt = 'hej m' dig!'
:)
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 23:18 #25
hmm i får points alligevel... men det er altså '' der virker...

hvis det kan hjælpe så er det mysql 4
Avatar billede coderdk Praktikant
09. februar 2005 - 23:22 #26
mysql_query( "INSERT INTO tabel (tekstfelt) VALUES ('" . mysql_real_escape_string($tekst) . "')");

;-)
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 23:24 #27
hvor mange gange skal jeg sige \' ikke virker :P :P :P :D det er '' der virker
Avatar billede olebole Juniormester
09. februar 2005 - 23:44 #28
Version 4 burde sagtens kunne klare en enkelt apostrof. Der må være noget galt i din opsætning
Avatar billede espeholt_jr Nybegynder
09. februar 2005 - 23:49 #29
mysql_query( "INSERT INTO tabel (text) VALUES ('$_POST[text]')");
Avatar billede coderdk Praktikant
10. februar 2005 - 00:12 #30
Uhm, er magic_quotes_gpc slået til eller fra?
Avatar billede gizp Nybegynder
10. februar 2005 - 14:24 #31
Altså hvorfor også skrive \' ? Det er der vel ingen grund til..
Avatar billede espeholt_jr Nybegynder
10. februar 2005 - 16:27 #32
ved jeg ikke... ved ikke hvad det er
Avatar billede coderdk Praktikant
10. februar 2005 - 16:37 #33
echo "Slået " . ( ini_get("magic_quotes_gpc") ? "til" : "fra" );
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester