[asp]record Update mislukt door quote's

Pagina: 1
Acties:

  • Cai
  • Registratie: December 2001
  • Laatst online: 11:47
Bij INSERT werkt bijv. het woord: auto's wel.

Doe ik UPDATE met een ' erin: krijg ik de volgende melding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 's'.


Als ik iets invoer zonder ', werkt het, het probleem is dus dat ASP dit niet accepteerd.

waarschijnlijk moet ik de replace functie gebruiken om ' in iets anders om te zetten, maar wat?

De db die ik gebruik is SQL-server en kan het gebruik van ' aan.

Verwijderd

Visual Basic .NET:
1
Replace(string, "'", "''")


Escapen dus :)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Het is wel prettig om even aan te geven HOE je probeert de betreffende waardes in de database te krijgen. Anders wordt het natuurlijk enorm ingewikkeld om je te helpen. Gebruik je bijvoorbeeld parameterized queries, of bouw je de query zelf door middel van string concatenation? (Dat laatste verwacht ik, anders heb je dit probleem niet :X)

Graag wat code dus!

[ Voor 11% gewijzigd door OZ-Gump op 21-10-2003 13:43 ]

My personal website


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 mompelt ook nog iets over cross-site scripting attacks

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
* whoami mompelt iets over parametrized queries.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 mompelt dat evt. SP's ook nog kunnen, aangezien het SQL Server is.

[ Voor 17% gewijzigd door gorgi_19 op 21-10-2003 13:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Cai
  • Registratie: December 2001
  • Laatst online: 11:47
*update

ik had het fout, SQL server kan het niet aan

update AK_sup_links
SET link='auto's'
where ID=1

kan niet logisch eigenlijk

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Cai schreef op 21 October 2003 @ 13:45:
*update

ik had het fout, SQL server kan het niet aan

update AK_sup_links
SET link='auto's'
where ID=1

kan niet logisch eigenlijk
Ook in een query moet je de single quote escapen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Cai
  • Registratie: December 2001
  • Laatst online: 11:47
ik versta jullie niet echt, hoop gemompel :p

  • Cai
  • Registratie: December 2001
  • Laatst online: 11:47
gorgi_19 schreef op 21 October 2003 @ 13:46:
[...]

Ook in een query moet je de single quote escapen.
En hoe moet dat?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Zoals Riffic zegt:
code:
1
Replace(string, "'", "''")


* UniCache2 mompelt ook even mee over SQL Injection in het algemeen ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Cai, we hebben hier zo'n mooi edit-knopje dat je kunt gebruiken om je post aan te passen ipv 3x onder elkaar te gaan posten.

Verder blijf ik er bij dat je eens naar parametrized queries of stored procedures moet kijken, dan heb je al dat geneuzel niet met dubbele quotes en sql injection.
Straks komt er trouwens een stukje over parametrized queries (in .NET) in de FAQ

https://fgheysels.github.io/


  • Cai
  • Registratie: December 2001
  • Laatst online: 11:47
owkee

Laat maar

[ Voor 84% gewijzigd door Cai op 21-10-2003 14:06 ]


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

omschrijving=replace(omschrijving,"'","''")
Zo gedaan?

Bloed, zweet & koffie


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Vilenin schreef op 21 oktober 2003 @ 14:06:
omschrijving=replace(omschrijving,"'","''")
Zo gedaan?
Waarbij je alleen niets doet tegen Cross Site Scripting.. :)

* gorgi_19 heeft een voorkeur voor de manier van whoami en je queries niet dynamisch opbouwen. Zeker ook qua snelheid is de manier van whoami beter.

[ Voor 32% gewijzigd door gorgi_19 op 21-10-2003 14:08 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
kan je een update niet gewoon doen via ADODB.Recordset???

ASP:
1
2
3
4
5
RSa.Open "SELECT veld1, veld2 FROM tbl_tabel WHERE ID=" & ID & "", objCon, 3, 3
  RSa.Addnew
    RSa("veldnaam")  =  veldnaam
  RSa.Update
RSa.Close

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Performancetechnisch is dat sowieso niet aan te raden... :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Het is heel simpel
\' = escape quote

gewoon UPDATE foo SET bar = 'auto\'s'

easy as hell, lame as dell
Pagina: 1