Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 15:39 Der er 26 kommentarer og
2 løsninger

Fejl i mysql

Hej...

Når jeg indsætter eller opdater en række i mysql, og noget af det jeg indsætter eller opdatere indholder ', så vil den ikke...

Hvad skal jeg gøre ved det?

Ved at det virker når jeg laver 2 ', men lidt besværligt at skulle lave str_replace på alle de ting jeg indsætter, på alle de sider
Avatar billede stalle Nybegynder
17. februar 2005 - 15:41 #1
addslashes($var);

og når du trækker ud igen, stripslashes($var);
Avatar billede amews_aj Nybegynder
17. februar 2005 - 15:42 #2
mysql_query("INSERT INTRO tabel (kolonne) VALUES ('".$variabel."')");
Avatar billede amews_aj Nybegynder
17. februar 2005 - 15:42 #3
UPS... :P INTRO = INTO
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 15:51 #4
hvad har 2 ' ('') at gøre med \'... har prøvet det virker ikke...

mysql_query("INSERT INTO tabel (kolonne) VALUES ('$variabel')");
<- sådan ser min ud...

mysql_query("INSERT INTO tabel (kolonne) VALUES ('" . $variabel . "')");
<- ville det gøre forskel?
Avatar billede amews_aj Nybegynder
17. februar 2005 - 15:59 #5
Jeg bruger den da når mine gæster skal indsætte deres info om sig selv... og der virker det da så vidt jeg ved :D
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 15:59 #6
hvilken mysql bruger du? min er version 4
Avatar billede amews_aj Nybegynder
17. februar 2005 - 16:01 #7
Jeg har prøvet med mange forskellige, jeg kører på min egen server med den nyeste mysql

4.1

ellers bruger jeg 1go
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 16:03 #8
okay prøver lige det så...
Avatar billede stalle Nybegynder
17. februar 2005 - 16:04 #9
Altså, dine værdier i en SQL skal være pakket ind i '$var' - og indeholder variablen de omtalte tegn (') så tror SQLen at nu er der ikke mere til den variabel.

Med addslashes() tilføjer du så en \ foran, som fortæller MySQLen at herefter kommer der et tegn som skal være en del af værdien, i stedet for at afslutte den.
Avatar billede sukos Juniormester
17. februar 2005 - 16:08 #10
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 16:10 #11
hvis pc-help´s virker, så er det klart lettest
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 16:52 #12
pc-helps virker ikke...

er der ikke en måde, hvor man kun skal rette noget i indsæt, opdater, og ikke når man henter data?

bortset fra str_replace
Avatar billede amews_aj Nybegynder
17. februar 2005 - 17:26 #13
mystisk... jeg har en form hvor jeg kan skrive ind og har lige prøver... alle tegn kan sættes ind....
Avatar billede stalle Nybegynder
17. februar 2005 - 17:28 #14
pc-help - Er magic_quotes så ikke "on" i din php.ini ?
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 17:41 #15
ved jeg ikke?
Avatar billede amews_aj Nybegynder
17. februar 2005 - 17:42 #16
Den er på min egen server, men ved ikke på 1go
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 17:44 #17
`hhm kan man ændre i den hvis man har cliche?
Avatar billede amews_aj Nybegynder
17. februar 2005 - 17:49 #18
Det er noget de skal gøre, du kan intet... andet end at sige det til dem
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 17:55 #19
kan man ikke lave et eller andet med

magic_quotes = true;

i toppen af alle ens sider?
Avatar billede amews_aj Nybegynder
17. februar 2005 - 18:00 #20
Ved jeg faktisk ikke... Umiddelbart ville jeg ikke tro man sådan kan ændre i opsætningen, men hvem ved... Du kunen jo prøve

Hvis man kan skal du nærmere skrive
magic_quotes_gpc = On
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 18:06 #21
hhm har fundet svaret...

man skal bruge noget der hedder pear db... http://php-faq.dk/index.php/Er_magic_quotes_godt_eller_skidt
Avatar billede stalle Nybegynder
17. februar 2005 - 18:26 #22
pc-help - idet du har magic_quotes siger det lidt sig selv at det vil virke

Eller benyt dig af addslashes() og stripslashes()

Men den løsning lader ikke til at kunne bruges for dig, så tag selv dine point
Avatar billede espeholt_jr Nybegynder
17. februar 2005 - 18:37 #23
http://php-faq.dk/index.php/Er_magic_quotes_godt_eller_skidt

der forklare de, at man ikke skal bruge nogen af de løsninger i er kommet med...

kunne godt bruge slash tingen sikkert men det strider imod "Ved at det virker når jeg laver 2 ', men lidt besværligt at skulle lave str_replace på alle de ting jeg indsætter, på alle de sider" som er det samme jo :/
Avatar billede espeholt_jr Nybegynder
18. februar 2005 - 18:24 #24
hej...

alle i må virkelig meget undskylde..

jeg ved ikke hvad der er gået galt, men \' virker... hhm har nok haft prøvet /' :/... men hmm hvad er der galt i denne sætning..


    $post_array = $_POST;

    for($i=0; $i < count($post_array);$i++) {

      $post_array[$i] = addslashes($post_array[$i]);

    }

i skal nok få points :)
Avatar billede espeholt_jr Nybegynder
18. februar 2005 - 19:38 #25
opret svar alle
Avatar billede sukos Juniormester
18. februar 2005 - 21:03 #26
Hvorfor vil du lave den for-løkke?
Og jeg vil nu anbefale dig at bruge de to funktioner fra artiklen, jeg linkede til.

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Felt 1 <input type="text" name="felt_1"><br>
Felt 2 <input type="text" name="felt_2"><br>
Felt 3 <input type="text" name="felt_3"><br>
Felt 4 <input type="text" name="felt_4"><br>
<input type="submit">
</form>

<?php

// http://www.eksperten.dk/artikler/190
function add_slash($var){
return get_magic_quotes_gpc()?$var:addslashes($var);
}

// http://www.eksperten.dk/artikler/190
function strip_slash($var){
  return get_magic_quotes_runtime()?stripslashes($var):$var;
}


if(isset($_POST["felt_1"])) {

$post_array = array();
$new_array = array();

foreach($_POST as $key => $value) {
$post_array[$key][] = addslashes($value);
$new_array[$key][] = add_slash($value);
}

foreach($post_array as $var => $indhold) {
echo $var ." - ". $indhold[0] ."<br>";
}

foreach($new_array as $var => $indhold) {
echo $var ." - ". $indhold[0] ."<br>";
}

echo $post_array["felt_1"][0];

}
?>
Avatar billede espeholt_jr Nybegynder
18. februar 2005 - 21:27 #27
har lavet noget lignede i et andet sp..

opret svar alle :)
Avatar billede sukos Juniormester
18. februar 2005 - 21:55 #28
mjahh, ok!
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