Skinney Skrevet 16. mars 2008 Del Skrevet 16. mars 2008 Heisann! Har en tabell her som jeg gjerne vil gi muligheten til å lagre ' tegn i. For eksempel, hvis jeg vil lagre Best of the 80's. Så vil dette gi problemer siden ' ' blir brukt for å angi start og slutt på verdien jeg vil lagre. INSERT INTO Music(album) VALUES('Best of the 80's.'); Så hvordan får jeg lagret det ' tegnet i tabellen? :S Lenke til kommentar
G2Petter Skrevet 16. mars 2008 Del Skrevet 16. mars 2008 Du kan prøve å escape '-ene: Skriv \' i stedet for ' Lenke til kommentar
Manfred Skrevet 16. mars 2008 Del Skrevet 16. mars 2008 (endret) På web-prosjekter hender det jeg tar den enkle løsningen, nemlig og erstatter ' med & #39; (uten mellomrom) som er html-entiteten for ' Endret 16. mars 2008 av Manfred Lenke til kommentar
Skinney Skrevet 16. mars 2008 Forfatter Del Skrevet 16. mars 2008 Fungerte dårlig Førstnevnte metode fungerte ikke, og sistnevnte lagret det som ' i databasen, og jeg vil helst at det skal stå '... Er snakk om sqlite3 og C++ her. Jeg kan alltids bruke replace etter at jeg har hentet ut resultatet fra databasen, men det blir mye enklere om jeg faktisk kan lagre ' inni der... Lenke til kommentar
blackbrrd Skrevet 16. mars 2008 Del Skrevet 16. mars 2008 Bruk prepared statements http://www.google.no/search?q=mysql+prepar...lient=firefox-a Lenke til kommentar
pian Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Jeg mener jeg på SQL Server 2005 har brukt "" rundt uttrykket og dermed kunnet bruke ' inni uten problemer. For de som bruker Microsoft Lenke til kommentar
roac Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 På web-prosjekter hender det jeg tar den enkle løsningen, nemlig og erstatter ' med & #39; (uten mellomrom) som er html-entiteten for ' Å legge HTML-formattering av data i databasen finner jeg noe i retning av direkte grisete, og det vil jeg på generelt grunnlag fraråde, da det gir en sterk binding mellom data og visuell presentasjon. Lenke til kommentar
roac Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Den enkleste (og beste) måten er vel å bruke to ' rett etter hverandre der et slikt tegn skal lagres i databasen, f eks: INSERT INTO Music(album) VALUES('Best of the 80''s.'); Lenke til kommentar
Skinney Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 Den enkleste (og beste) måten er vel å bruke to ' rett etter hverandre der et slikt tegn skal lagres i databasen, f eks: INSERT INTO Music(album) VALUES('Best of the 80''s.'); Aha! Takk skal du ha, skal se litt nærmere på prepeared statements før jeg eventuelt bestemmer meg for hvilken metode å bruke (finne ut hva som er mest jobb ). Takk for hjelpen alle sammen Lenke til kommentar
kaffenils Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Aha! Takk skal du ha, skal se litt nærmere på prepeared statements før jeg eventuelt bestemmer meg for hvilken metode å bruke (finne ut hva som er mest jobb ). Bestemme seg for???? De eneste valgene du har er prepared statements og prepared statements, og da blir jo valget enkelt, nemlig prepared statements. Lenke til kommentar
Skinney Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 Ellers kan jeg skrive en metode som erstatter ' i strengene mine med '' og så bruke strengen i sqlite3_exec(database, QUERY... Lenke til kommentar
blackbrrd Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Den enkleste (og beste) måten er vel å bruke to ' rett etter hverandre der et slikt tegn skal lagres i databasen, f eks: INSERT INTO Music(album) VALUES('Best of the 80''s.'); Noen spesiell grunn til at du anbefaler å escape manuellt istedetfor å bruke prepared statements og la databasen/driverne gjøre det for deg? Manuell escaping gjør det jo mulig med SQL-injection (hvis man ikke har tenkt på alt). Lenke til kommentar
Manfred Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 På web-prosjekter hender det jeg tar den enkle løsningen, nemlig og erstatter ' med & #39; (uten mellomrom) som er html-entiteten for ' Å legge HTML-formattering av data i databasen finner jeg noe i retning av direkte grisete, og det vil jeg på generelt grunnlag fraråde, da det gir en sterk binding mellom data og visuell presentasjon. Som sagt bruker jeg det bare på rene små webprosjekter som ikke skal brukes til noe som helst annet. Jeg har gått på en smell på slike ting i gamledager. Dataene skulle bare presenteres på web og oversendes en annen server (som tok imot & #39; som '). Utfordringen kom da jeg også skulle sende disse datane over til en annen server, som skulle ha data i en annen encoding Lenke til kommentar
kaffenils Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Ellers kan jeg skrive en metode som erstatter ' i strengene mine med '' og så bruke strengen i sqlite3_exec(database, QUERY... Det er dårlig programmeringsskikk å eksekvere SQL-statements på denne måten? Det må da være mye bedre å lære seg den riktig måten å gjøre det på, spesielt med tanke på at du kanskje en gang vil bruke andre RDBMS enn SQLite som vil kreve enda mer validering av input enn bare om den inneholder '. Lenke til kommentar
Skinney Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 Blæ... Ekke så farlig. Holder på med et hobby prosjekt for å få tia til å gå og for å lære meg C++. Lager et musikkprogram hvor jeg lagrer musikk samlinga i en sql database. Hvordan SQL fungerer gir jeg egentlig pokker i, så lenge det fungerer Lenke til kommentar
kaffenils Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Gjør som du vil, men med den holdningen er dette siste (og første) gan jeg gidder å gi deg råd og tips Lenke til kommentar
Skinney Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 Var ikke sånn ment, jeg setter jo selvfølgelig pris på hjelpen. Men siden jeg ikke satser på å bli flink på SQL programmering, men C++, så er det ikke så viktig for meg å vite hva som er best, men hva som fungerer og er lettest å gjennomføre. Lenke til kommentar
kaffenils Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 Det har da ingenting med om du er flink eller ikke i SQL å gjøre. Det har med om du gjør det på en sikker måte. Men uansett, det er ditt valg. Gjør som du vil. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå