---
title: "SQL med konstiga tecken ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/69508-sql-med-konstiga-tecken"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pellefant"
published: "2003-02-26T15:37:38.000Z"
updated: "2003-02-26T20:36:42.000Z"
replies: 8
views: 322
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/69508-sql-med-konstiga-tecken"
---

# SQL med konstiga tecken ?

## #1 — Pellefant, 2003-02-26T15:37Z

Hej!

Jag har denna

Det fungerar bra, men är det ett "&" eller ett " ' "(tex A & B's Port City Tatoo) i variabeln name(och då även Name i databasen), så fungerar det inte alls, inget felmeddelande, men det blir ingen träff, trots att det finns en rad i databasen som passar.

```
<%
SQL = "SELECT * FROM Brunswick WHERE Name = '" & name & "' AND City = '" & city & "' AND Phone = '" & phone  & "'"
```

ASP, Access

Permalänk: https://www.webforum.nu/p/69508

## #2 — @nders, 2003-02-26T15:39Z

Fråga 1: har du html-encodat den texten du stoppat in i databasen? Gör inte det.
Fråga 2: har du escapeat apostrofer innan du ställer SQL-frågan?
Fråga 3: hur ser den färdiga SQL-frågan ut?\`

Mvh,

Permalänk: https://www.webforum.nu/p/961568

## #3 — Pellefant, 2003-02-26T15:58Z

Hej!

Tack för frågorna. :)

Svar 1:
Nej, inte om jag stoppar i nya data.
Databasen är befintlig, men det ser "vanligt" ut om jag tittar i databasfälten, dvs bara vanliga bokstäver och tecken, som det ser ut på skärmen.

Svar 2:
Måste erkänna att jag inte förstår frågan, så det har jag troligtvis inte gjort, det ser ut tex såhär: 

name = Request.QueryString("name") 

Fråga3:

För en fungerande utan & eller ' ser det ut såhär

```
SQL-query: SELECT * FROM Brunswick WHERE Name = 'A1 Repossessions' AND City = 'Brun' AND Phone = '264-1234'
```

För en med ' ser det ut såhär (ska vara: Aaron's Sales & Lease Ownership)

```
SQL-query: SELECT * FROM Brunswick WHERE Name = 'Aaron's Sales ' AND City = '' AND Phone = '554-1234'
```

Och för en med &  (ska vara: A G Edwards & Sons Inc     )

```
SQL-query: SELECT * FROM Brunswick WHERE Name = 'A G Edwards ' AND City = '' AND Phone = '261-1234'
```

Permalänk: https://www.webforum.nu/p/961587

## #4 — @nders, 2003-02-26T18:56Z

1: oki!
2: Du måste byta ut alla förekomster av apostrof mot två. Det är för att inte SQL-frågan skall förstöras, då en enkel apostrof tolkas som slut på strängen. Du lägger ju in alla text-värden mellan apostrofer.

```
name = Replace(Request.QueryString("name"), "'", "''")
```

Detta förändrar inte datat, utan ser endast till att strängen tolkas korrekt i SQL-frågan.
3: Det där med & förstår jag inte. Det är inget speciellt med &.

Jag slänger fram en till fråga:
4: Du har väl inte med On Error Resume Next i koden?

Mvh,

Permalänk: https://www.webforum.nu/p/961724

## #5 — Pellefant, 2003-02-26T19:20Z

Hej igen! :)

2)
lade in din kod, så nu funkar det med:  '    :)

3)
Jodå, nåt speciellt är det med "&", jag lovar     :)

4  
Nej, nån sån finns inte.  Lägger in hela koden nedan, kanske har jag med något annat dumt.

```
<% Response.Buffer = True %>
<!-- #include file="adovbs.inc" -->

<BODY bgcolor="#FFFFCC" alink="#00000" vlink="#00000">

<%Category=request.form("category")%>

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

name = Replace(Request.QueryString("name"), "'", "''")
city = Request.QueryString("city") 
phone = Request.QueryString("phone") 

SQL = "SELECT * FROM Brunswick WHERE Name = '" & name & "' AND City = '" & city & "' AND Phone = '" & phone  & "'" 
%>

SQL-query: <%=SQL%>

<% RecSet.Open SQL, Databas, 3, 3 %>

<TABLE>
<TR>
	<TD>Type</TD>
	<TD>
<FORM METHOD="POST" ACTION="addcrsedit.asp">

<select name="typ">
<%if RecSet("Type")="B" then %>
	<option selected>B</option>
<%else%>
    <option>B</option>
<%end if%>

<%if RecSet("Type")="R" then %>
	<option selected>R</option>
<%else%>
    <option>R</option>
<%end if%>
</select>
	
</TD>
	</tr>
<tr>
	
	<td>
Address
	</td>

	<TD>
	<TEXTAREA NAME="address" ROWS="3" COLS="20"><%=RecSet("Address")%></TEXTAREA></TD>
</TR>
<TR>
	<TD>City</TD>
	<TD><INPUT TYPE="text" NAME="city" value="<%=RecSet("City")%>"></TD>
</TR>
<TR>
	<TD>State</TD>
	<TD>
	
		<select name="state">
 <option selected>MO</option>
<option>NY</option>
<option>LV</option>
</select>
	
	</TD>
</TR>
<TR>
	<TD>Zip</TD>
	<TD><INPUT TYPE="text" NAME="zip" value="<%=RecSet("Zip")%>" ></TD>
</TR>
<TR>
	<TD>Phone</TD>
	<TD><INPUT TYPE="text" NAME="phone" value="<%=RecSet("Phone")%>" ></TD>
</TR>
<TR>
	<TD>Area_Code</TD>
	<TD><INPUT TYPE="text" NAME="areacode" value="<%=RecSet("Area_Code")%>" ></TD>
</TR>
<TR>
	<TD>URL</TD>
	<TD><INPUT TYPE="text" NAME="url" value="<%=RecSet("URL")%>" ></TD>
</TR>
<TR>
<TD>Name</TD>
	<TD><INPUT TYPE="text" NAME="name" value="<%=RecSet("Name")%>" ></TD>

<%RecSet.Close 
	Databas.Close %>

</TR>
<TR>
	<TD>

<p>
<INPUT TYPE="submit" value="Edit">
</TD>

</TR>
</TABLE>

</FORM>

</HTML>
</BODY>
```

Permalänk: https://www.webforum.nu/p/961747

## #6 — LarsG, 2003-02-26T20:03Z

Att du får problem med & har inte med SQL att göra utan beror på att du skickar värdet med GET (request.querystring) där & har en viss betydelse. Om du använde POST (request.form) så blir det lugnt. Det går väl att ordna med någon HTML/URL encoding  men POST är bättre.

Permalänk: https://www.webforum.nu/p/961768

## #7 — Pellefant, 2003-02-26T20:09Z

Hej!

Upptäckte det just, det står crsedit.asp?name=A1%20Towing%20&%20Recovery i querystringen....

dvs & förvanskas

Ska byta till request.form....återkommer

Permalänk: https://www.webforum.nu/p/961772

## #8 — Pellefant, 2003-02-26T20:32Z

Oki, nu fungerar det, gjorde det utan querystring.

Sorry @nders att jag inte såg från början i url:en att  & tecknet förvanskades....

Skickar:
\<FORM METHOD="POST" ACTION="crsedit.asp"\>
\<input type=hidden name="name" value="\<%=RecSet("Name")%\>"\>
\<input type=hidden name="city" value="\<%=RecSet("city")%\>"\>
\<input type="hidden" name="phone" value="\<%=RecSet("phone")%\>"\>
\<input type="image" src="edit.gif" WIDTH="18" HEIGHT="14" BORDER=0 ALT="Edit"\>
\</FORM\>	

Tar emot:
name = Replace(Request.form("name"), "'", "''")
city = Request.form("city") 
phone = Request.form("phone") 

Tack för all hjälp!!!

Permalänk: https://www.webforum.nu/p/961778

## #9 — @nders, 2003-02-26T20:36Z

Se till att escape:a apostrof i alla värden som ska in i SQL-frågor, och inte bara name-fältet. Det bästa är om du gör en liten funktion, så blir det lättare att kalla på.

```
Function FixString(strText)
     strText = Replace(strText, "'", "''")
     FixString = strText
End Function

name = FixString(Request.form("name")) 
city = FixString(Request.form("city"))
phone = FixString(Request.form("phone"))
```

Mvh,

Permalänk: https://www.webforum.nu/p/961781

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/69508-sql-med-konstiga-tecken
