jonneMedlem sedan jan. 20011 097 inlägg
Använder en insertfunktion som ursprungligen kommer från phpportalen.net. Ser ut på fäljande sätt
function Insert($TBL, $FIELDS, $DATA) {
$arr = explode(", ", $DATA);
$resultat = implode("', '", $arr);
$resultat = "'$resultat'";
@mysql_query("INSERT INTO $TBL ($FIELDS) VALUES($resultat)")
or die("Felaktig SQL-syntax!<br> <br>" . mysql_error() . "<br><br>" .$FIELDS. "<br>" .$DATA);
$this->rows = @mysql_affected_rows();
return true;
}
Används på följande sätt:
$DB->Insert(
"imgSources", //Tabellnamn
"imgsrcAgencyName, imgsrcDescription", //Kolumner i dbn
"$ffAgency, $ffDesc" //Formfält
);
Problemet är nu att om jag i ffDesc har en text som ser ut såhär:
Hej på er, alla glada
så kommer ju ett fel att genereras eftersom texten innehåller komma->mellanslag.
Hur ska jag göra för att smidigast komma förbi detta?
------------------
Varför får inte jag köra småsten när Tommy Körberg?
[Redigerat av jonne den 19 sep 2001]
SPiNMedlem sedan mars 20005 832 inlägg
Eftersom att det är jag som skrivit klassen så borde ju jag veta... ;)
Byt ut alla dina kommatecken i strängarna mot ,.
$str = "Hej på er, alla glada";
$str = str_replace(',', '&#44;', $str);
Eller ännu hellre, för att göra din kod säkrare:
$str = "Hej på er, alla glada";
$str = htmlentities($str);
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
[Redigerat av SPiN den 19 sep 2001]
jonneMedlem sedan jan. 20011 097 inlägg
Undrar om jag förstod det där :)
Löste det iaf med att byta ut kommat mot & #44;
$str = "$ffDesc";
$str = str_replace(',', '& #44;', $str);
Bra sätt?
[r] *suck* [/r]
------------------
Varför får inte jag köra småsten när Tommy Körberg?
[Redigerat av jonne den 19 sep 2001]
[Redigerat av jonne den 19 sep 2001]
SPiNMedlem sedan mars 20005 832 inlägg
Tja, eftersom att det var det jag föreslog så borde det vara ett bra sätt :e
Men använd htmlentities() om du vill vara säker på att andra tecken konverteras till HTML-koden för tecknen...
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
jonneMedlem sedan jan. 20011 097 inlägg
Hmm.. konfunderad. Om jag använder htmlentities så kommer jag ju endå inte förbi detta problemet med att funktionen tolkar komma->mellanslag som att det ska vara ett nytt formfält. Eller :q
------------------
Varför får inte jag köra småsten när Tommy Körberg?
SPiNMedlem sedan mars 20005 832 inlägg
Njäe, htmlentities() ersätter alla "konstiga" tecken med dess motsvarighet i HTML.
Alltså:
, blir ,
& blir &
" blir "e;
osv...
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
nicclasMedlem sedan feb. 20001 061 inlägg
Nä, htmlentities() ersätter inte ",".
(Slutsats: Insertfunktionen suger ;) )
[Redigerat av nicclas den 19 sep 2001]
SPiNMedlem sedan mars 20005 832 inlägg
Gör den inte?? :o
Hmm... Jag trodde starkt på att den ersatte alla "konstiga" tecken... Aja, man kan juh använda str_replace().
Min funktion suger inte! Den känns bara lite överflödig, eftersom att den inte gör det lättare att lägga in information i databasen... :e
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
[Redigerat av SPiN den 19 sep 2001]