Avatar billede akyhne Nybegynder
05. juli 2008 - 17:17 Der er 13 kommentarer og
1 løsning

Indsætte ' i database

Hvordan gør jeg det?

$sql = "insert into bla, bla.
og en af values værdierne indeholder et '
Avatar billede akyhne Nybegynder
05. juli 2008 - 17:19 #1
$Sti = "a'b";

$sql = "insert into aaa (IP, Adresse, Dato, Agent)
values ('$BesoegIP', '$Sti', now(), '$Agent')";
Avatar billede jakobdo Ekspert
05. juli 2008 - 18:02 #2
Dette burde være korrekt:

$Sti = mysql_real_escape_string("a'b");

$sql = "insert into aaa (IP, Adresse, Dato, Agent)
values ('$BesoegIP', '$Sti', now(), '$Agent')";
Avatar billede akyhne Nybegynder
05. juli 2008 - 18:18 #3
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/xxxxxxxx' (2) in /home/www/xxxxx.dk/yyyyy/zzzzzz.php on line 60
Avatar billede jakobdo Ekspert
05. juli 2008 - 18:30 #4
Du skal lige forbinde til din database/mysql inden du kalder: mysql_real_escape_string()
Avatar billede arne_v Ekspert
05. juli 2008 - 18:31 #5
Den fejl har så ikke noget med quote problemet.

Hvis du er på PHP 5 så bil jeg anbefale mysqli og prepared statement, men ellers
skal den escapes. Enten traditionel dublering til '' eller MySQL specifikt \' og
mysql_real_escape_string må antages at have styr på det på en rimelig måde.
Avatar billede akyhne Nybegynder
05. juli 2008 - 18:51 #6
Jeg har prøvet at escape. Hjalp ikke.

Her er den rigtige linie der skal sammensættes:
$Timeset = $Minutes."'".$Seconds.".".$Hundrets;

Hvis jeg fjerner ' i  ."'". får jeg ingen fejl, og tiden indsættes korrekt,
eks. 1 23.758

Jeg skal bare have det mellemrum efter 1 til at være et "'".
Avatar billede akyhne Nybegynder
05. juli 2008 - 19:21 #7
jakobdo: 18:30:47 Du havde ret. Smid et svar.
Avatar billede jakobdo Ekspert
05. juli 2008 - 19:31 #8
Svar!
Avatar billede jakobdo Ekspert
05. juli 2008 - 21:45 #9
Takker for point.
Avatar billede cronaldo Nybegynder
05. juli 2008 - 22:46 #10
kunne det ikke også gøres med:

addslashes($str)

og så bare stripslashes($str) når den udskrives?
Avatar billede jakobdo Ekspert
06. juli 2008 - 12:13 #11
Jo
Avatar billede erikjacobsen Ekspert
06. juli 2008 - 12:25 #12
Nej. Siger man "addslashes" med henblik på at putte en streng i et felt i en tabel i en database, skal man ikke sige "stripslashes", når man tager den ud igen. De "\"-ere, der kommer fra "addslashes" er alene til SQL-syntaksen, og forefindes ikke i teksten i databasen efterfølgende.
Avatar billede frand Nybegynder
06. juli 2008 - 12:26 #13
http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

skriver lidt om mysql_real_escape_string vs addslashes
Avatar billede arne_v Ekspert
06. juli 2008 - 15:24 #14
Men konklusionen er klar : brug mysqli og prepared statement
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