---
title: "MySQL - En djungel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/151487-mysql-en-djungel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "oskars"
published: "2006-09-19T15:06:19.000Z"
updated: "2006-10-18T16:45:37.000Z"
replies: 40
views: 1700
page: 1
pages: 3
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/asp/151487-mysql-en-djungel"
---

# MySQL - En djungel?

_Sida 1 av 3._

## #1 — oskars, 2006-09-19T15:06Z

Hej på er! Dimma och grejer på morgonen nu för tiden och man märker att man inte är helt på G i kroppen när man känner att halsen reagerar när man pratar på jobbet... usch, jobbigt. Hur som helst...

Jag försöker gå över till **MySQL**  från **Access**... ooooh yes! Kände mig riktigt odödlig där ett tag. "Kul" tyckte jag... och sen "Ojdå, det verkar ju *jättelätt*!"... och sen "Ajdå, så lätt var det inte visst! Typiskt!". Eftersom MySQL är mer standard än Access så tänkte jag ändå försöka lära mig det. Tyvärr fungerar inte böcker för mig då jag aldrig tar mig tid att läsa. Internet är det absolut bästa läroverktyget för mig.

Som jag skrev ovan så arbetar jag för tillfället i Access (tillsammans med ASP).

**Saker jag lyckats med i mina MySQL-äventyr:**

1. Installera EMS MySQL Manager. I detta programet hanterar jag min mysqldatabaser och skapar tabeller etc.
2. Skriva ut data från databasen. Kan loopa precis som jag gör med access och det där med MoveNext etc.
3. Skriva in data med hjälp av INSERT.

**Och självklart så har jag några problem i mina MySQL-äventyr:**

1. Så som jag lägger till data i databasen med Access tycker jag är fruktansvärt smidigt. Det kan inte gå fel liksom. Så här gör jag: RecSet.AddNew   RecSet("Namn") = Request.Form("Namn")    RecSet.Update... Det kan inte bli enklare... Och den bilden jag fått av MySQL säger mig att det inte går att göra så här längre... tyvärr... Om svaret är att "Nej, du kan inte göra så längre!"... *Se nästa punkt!*
2. **Jag vet ju hur man skriver in data i 1st fält**  i min databas på korrekt sätt i MySQL... **MEN**... jag kommer få väldigt långa SQL-frågor om jag ska skriva allting på en rad och det kan lätt bli fel för mig som inte är van etc. Jag skulle vilja se ett exempel på hur jag kan göra det enkelt för mig här! Samma sak gäller även för att ÄNDRA poster i databasen. Ska visa lite exempel här nedan... Översikt i SQL-frågorna är viktigt.

**Så här skriver jag in data för tillfället till Access:**

```php
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databasen")

Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "Select * From tblLankar", Connect, 3, 3

link = Request.Form("url")
link = Replace(link, "&","$")

	RecSet.AddNew

		RecSet("Namn") = Request.Form("namn")
		RecSet("URL") = link
		RecSet("Text") = Request.Form("kommentar")
		RecSet("Kategori") = Request.Form("kategori")
		RecSet("Hits") = 0
		RecSet("Datum") = Date
		RecSet("Tid") = Time

	RecSet.Update

RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
```

**Så här har jag fått lära mig att man lägger till data i 1st fält till MySQL:**

```php
SQL2 = "INSERT INTO MySQLtest (Meddelande1) VALUES ('" & Now & "'),(Meddelande2) VALUES ('" & Now & "')"
Connect.Execute(SQL2)
```

Mitt problem börjar här! Jag vill ju lika smidigt som jag visade i Access-exemplet ovan lägga till massor av data i en post i databasen... men det blir lätt rörigt i sql-frågan till MySQL tycker jag! Lätt att det kan bli fel och sådär!

**Fråga till ovanstående stycke:**
Vill ni visa mig hur jag ska skriva för att kunna få långa SQL-frågor, där mkt data ska in i databas i många fält, att bli översiktig?

**En annan fråga**
Måste jag använda olika koder för INSERT och UPDATE? Kan jag t.ex uppdatera en post med hjälp av INSERT INTO MySQLtest WHERE ID = 1 t.ex?

Syftet med denna tråden är ju så klart att lätta dimman för mig själv i MySQL-världen, men den blir även ett perfekt tillskott sen när andra kommer och är lika mkt MySQL-nybörjare som jag :D Hoppas det inte blev för lång inledning!

Tacksam för hjälp :)

  :bire 

Mvh Oskar

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

## #2 — Prometheus, 2006-09-19T15:23Z

Nu håller jag inte på med ASP, utan PHP... men jag skulle gjort:
SQL2 = "INSERT INTO MySQLtest (Meddelande1, Meddelande2) VALUES ('" & Now & "', '" & Now & "')" 

Vill passa på att tips om den här boken, som jag tyckte var upplysande:
<http://www.bokus.com/b/9163608308.html>

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

## #3 — oskars, 2006-09-19T15:30Z

> **Prometheus skrev:**
>
> Nu håller jag inte på med ASP, utan PHP... men jag skulle gjort:
> SQL2 = "INSERT INTO MySQLtest (Meddelande1, Meddelande2) VALUES ('" & Now & "', '" & Now & "')"

Tack för ditt tips där! Men om jag har låt oss säga 20st fält som ska fyllas i så blir det ganska rörigt =) Förstår du mig?

Kan man göra på annat sätt?

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

## #4 — Josef, 2006-09-19T15:33Z

Precis som Prometheus säger så skrivs inte sql-insertstatements som du har gjort ovan...

Korrekt syntax:

```
INSERT INTO [i]tabellen[/i] ([i]kolumnnamnen (kommaseparerade)[/i]) VALUES([i]kolumnvärdena (kommaseparerade)[/i])
```

/edit: Lite sent. :r

Har för mig att du kan göra på samma sätt mot en MySQL-db som mot en access. Dock har jag aldrig använt det förstnämda.

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

## #5 — oskars, 2006-09-19T15:37Z

> **Josef skrev:**
>
> Precis som Prometheus säger så skrivs inte sql-insertstatements som du har gjort ovan...
> 
> Korrekt syntax:
>
>
> ```
> INSERT INTO [i]tabellen[/i] ([i]kolumnnamnen (kommaseparerade)[/i]) VALUES([i]kolumnvärdena (kommaseparerade)[/i])
> ```
>
> 
> 
> /edit: Lite sent. :r
> 
> Har för mig att du kan göra på samma sätt mot en MySQL-db som mot en access. Dock har jag aldrig använt det förstnämda.

Perfekt där med dom exakta förklaringarna! Tack!

Men min fråga i mitt föregående inlägg.. Säg att jag har 20st fält som ska fyllas i... det blir ganska långt då =)

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

## #6 — HenrikAI, 2006-09-19T15:52Z

Blev ganska långt i Access med tycker jag. :) Dela upp din SQL-sats på flera rader så blir det överskådligare.

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

## #7 — oskars, 2006-09-19T16:00Z

> **HenrikAI skrev:**
>
> Blev ganska långt i Access med tycker jag. :) Dela upp din SQL-sats på flera rader så blir det överskådligare.

Långt fast fint och överskådligt =)

Får jag göra så här?

```php
("INSERT INTO" &_
"TABELLEN(namn, URL, Text, Kategori, Hits, Datum, Tid)" &_
VALUES '"&namn&"', '"&link&"', '"&kommentar&"', "&kategori&", "&hits&", '"&Tid&"')")"
```

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

## #8 — Jeppeweb, 2006-09-19T17:25Z

MySQL

fel

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

## #9 — @nders, 2006-09-19T18:06Z

> **oskars skrev:**
>
> Får jag göra så här?

Nja. Du får inte använda php-taggar till asp-kod, till att börja med, det bara förstör läsbarheten (och i vissa fall också förändrar koden mellan taggarna). Du måste också ha mellanslag mellan & och h. Du måste ha whitespace efter *into*, och gärna på lite andra ställen också. Alla kommaseparerade värden skall ligga i en parentes efter *values*. Jag hade, för enkelhet och överskådlighet, lagt SQL-frågan i en variabel.

```
sSQL = "INSERT INTO " & _
       "TABELLEN (namn, URL, Text, Kategori, Hits, Datum, Tid) " & _
       VALUES ('" & namn & "', '" & link & "', '" & kommentar & "', " & _
       kategori & ", " & hits & ", '" & Tid &"')"
```

Jag hoppas också att du tänker på SQL injection och byter namn på fältet *text* (det är ett reserverat ord).

Mvh

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

## #10 — oskars, 2006-09-19T18:50Z

Jeppewebb, vadå "fel"?

> **@nders skrev:**
>
> Nja. Du får inte använda php-taggar till asp-kod, till att börja med, det bara förstör läsbarheten (och i vissa fall också förändrar koden mellan taggarna). Du måste också ha mellanslag mellan & och h. Du måste ha whitespace efter *into*, och gärna på lite andra ställen också. Alla kommaseparerade värden skall ligga i en parentes efter *values*. Jag hade, för enkelhet och överskådlighet, lagt SQL-frågan i en variabel.
>
> ```
> sSQL = "INSERT INTO " & _
>        "TABELLEN (namn, URL, Text, Kategori, Hits, Datum, Tid) " & _
>        VALUES ('" & namn & "', '" & link & "', '" & kommentar & "', " & _
>        kategori & ", " & hits & ", '" & Tid &"')"
> ```
>
> Jag hoppas också att du tänker på SQL injection och byter namn på fältet *text* (det är ett reserverat ord).
> 
> Mvh

Jaha, åfan! Trodde du menade att jag använda PHP-kod... men nu förstod jag ju såklart att du mena när jag skrev inlägget här på wF!

Tackar och bugar för din hjälp med hur man kunde dela upp SQL-frågan! Jag har sql-frågan i en variabel. Skrev bara inte ut den.

**Nu har jag en liten fråga:**
Med den INSERT-frågan... kan jag välja att lägga in den information i ett ID som redan finns? liksom INSERT INTO MinTabell WHERE ID = "& Request.Querystring("ID") %"... Går det?   :r

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

## #11 — @nders, 2006-09-19T18:52Z

> Med den INSERT-frågan... kan jag välja att lägga in den information i ett ID som redan finns? liksom INSERT INTO MinTabell WHERE ID = "& Request.Querystring("ID") %"... Går det?

Nej, då är det UPDATE som gäller.

```
UPDATE tabell SET fält1 = 'foo', fält2 = 'bar', fält3 = 'foobar' WHERE ID = 4711
```

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

## #12 — oskars, 2006-09-19T18:56Z

> **@nders skrev:**
>
> > Med den INSERT-frågan... kan jag välja att lägga in den information i ett ID som redan finns? liksom INSERT INTO MinTabell WHERE ID = "& Request.Querystring("ID") %"... Går det?
>
> Nej, då är det UPDATE som gäller.
>
> ```
> UPDATE tabell SET fält1 = 'foo', fält2 = 'bar', fält3 = 'foobar' WHERE ID = 4711
> ```

Ånej, tycker det blir så krångligt alltihopa   :q  Eller jag vet inte....... Mitt problem är väl att jag har börjat bygga på en grej som jag för tillfället kör med Access... och funderar på hur övergången till MySQL ska gå... Tror du att jag kan klara av det? Det är så smidigt med det jag kör nu med Access... jag behöver inte ha olika frågor, som MySQL har, för INSERT  och UPDATE... Kör ju bara med RecSet.Update... riktigt smidigt. Finns det något liknande för MySQL, eller is this the way to go? Is it either MySQL's way, or the highway? Oooh, jag droppar feta engelska rader här... Hur som helst :)

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

## #13 — @nders, 2006-09-19T18:58Z

Krångligt?

Det är bara att lära sig rätt från början. Använd INSERT och UPDATE för Access också så blir övergångsproblemen mindre.

Mvh

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

## #14 — oskars, 2006-09-19T19:03Z

Hehe ja jo, du har så rätt snabelA-nders!

Fast HALLÅ! Åhå   :q  OMG!   :e  Nu klarnar det   :D  Frågan jag ställer i mitt program handlar ju bara om att jag ska UPPDATERA... inte lägga till något.. Så då är det ju UPDATE jag ska köra med när jag ska börja byta ut frågorna :D   :stud    :i    :bire 

Underbart! Tack 4nders!

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

## #15 — Dev Null, 2006-09-19T19:36Z

Tips om du inte hittat: <http://dev.mysql.com/doc/refman/5.1/en/>

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

## #16 — oskars, 2006-09-19T20:17Z

> **Dev Null skrev:**
>
> Tips om du inte hittat: <http://dev.mysql.com/doc/refman/5.1/en/>

Tack så mycket för länken   :D    :bire

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

## #17 — oskars, 2006-09-20T08:01Z

Håller på att byta om till MySQL nu och det fungerar väldigt bra =) Jag förstår mig på det mer och mer! Jag använder denna tråden som referens titt som tätt och det funkar skitbra! Tack så mycket för allt hjälp!

Men nu har jag problem med att få min paging att fungera... Har ingen som helst aning om hur jag ska göra för att åtgärda det. Någon som skulle vilja hjälpa mig?

Får detta felet:
ADODB.Recordset (0x800A0CB3)
Aktuellt Recordset stöder inte bokmärken. Det kan bero på en begränsning av providern eller den valda markörtypen.

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

## #18 — oskars, 2006-09-20T14:01Z

Hej vänner! Det bästa måste vara att besvara sina egna frågor :D

Jag sökte på... gissa vad... jo precis... Google(!)!

Hittade en schysst norsk sida som går igenom hur man gör en MySQL-paging med ASP!

Här har ni andra som undrar samma sak som jag:

**Hur man gör MySQL-paging i ASP:**
<http://activedeveloper.dk/articles/279/>

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

## #19 — Troxy, 2006-09-20T20:46Z

Men alltså paging med ADO och MySQL skiljer sig knappt någonting alls jämfört med Access.
Det viktiga är att man sätter CursorLocation till 3 innan man öppnar sitt recordset, så att man får tillgång till egenskaperna PageSize, AbsolutePage, PageCount mfl.

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

## #20 — oskars, 2006-09-21T07:45Z

Hehe, ja ja, nu bytte jag paging helt och hållet... va det knäppt kanske :D

Jag har en fråga som är viktig:

Detta meddelandet får jag när jag försöker lägga in lite grejer i databasen OM Request.Form("Order") = 1:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-5.0.24a-community-nt\]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Avbetalning = '300', Losen = '1', Betvillkor = '1', Frakt = '1', Levtid = '1-2ve' at line 1

SQL-Frågan:

```
Set Recset = Server.CreateObject("ADODB.Recordset")
SQL = "
UPDATE Adresser2006 SET 

GS = 0, 
KOrder = 1, 
Orderdatum = '"&Kontaktdatum&"', 
Losen = '"& Request.Form("losen") &"', 
Betvillkor = '"& Request.Form("betvillkor") &"', 
Avbetalning = '"& Request.Form("avbetalning") &"', 
Frakt = '"& Request.Form("frakt") &"', 
Ordernotering = '"& Request.Form("orderOvrigt") &"', 

Produkt1 = '"& Request.Form("produkt1") &"', 
Antal1 = "& Request.Form("antal1") &", 
Storlek1 = '"& Request.Form("storlek1") &"', 
Pris1 = "& Request.Form("pris1") &", 
Produkt2 = '"& Request.Form("produkt2") &"', 
Antal2 = "& Request.Form("antal2") &", 
Storlek2 = '"& Request.Form("storlek2") &"', 
Pris2 = "& Request.Form("pris2") &", 
Produkt3 = '"& Request.Form("produkt3") &"', 
Antal3 = "& Request.Form("antal3") &", 
Storlek3 = '"& Request.Form("storlek3") &"', 
Pris3 = "& Request.Form("pris3") &", 
Produkt4 = '"& Request.Form("produkt4") &"', 
Antal4 = "& Request.Form("antal4") &", 
Storlek4 = '"& Request.Form("storlek4") &"', 
Pris4 = "& Request.Form("pris4") &", 
Produkt5 = '"& Request.Form("produkt5") &"', 
Antal5 = "& Request.Form("antal5") &", 
Storlek5 = '"& Request.Form("storlek5") &"', 
Pris5 = "& Request.Form("pris5") &", 
Produkt6 = '"& Request.Form("produkt6") &"', 
Antal6 = "& Request.Form("antal6") &", 
Storlek6 = '"& Request.Form("storlek6") &"', 
Pris6 = "& Request.Form("pris6") &", 

Foretag = '"& Request.Form("foretag") &"' 
WHERE ID = "& Request.Form("id") &""

Connect.Execute(SQL)
Set RecSet = Nothing
```

Tabellen som innehåller alla ovanstående fälten:

```
<table class="orderTable" width="100%">
	<tr>
		<td colspan="4">
                           <select name="leveranstid" id="leveranstid" style="width:70px;">
				<option selected>Lev.tid:</option>
				<option></option>
				<option value="1-2veckor">1-2 veckor</option>
				<option value="2-4veckor">2-4 veckor</option>
				<option value="2-6veckor">2-6 veckor</option>
				<option value="4-6veckor">4-6 veckor</option>
			</select>
			Lösen: <input name="losen" type="text" class="orderPris" />
			Bet. villk.: <input name="betvillkor" type="text" class="orderPris" />
			Frakt: <input name="frakt" type="text" class="orderPris" />
		</td>
	</tr>
	<tr>
		<td width="250">Produkt</td>
		<td width="20" align="center">Strl</td>
		<td width="20" align="center">St</td>
		<td width="10">Pris</td>
	</tr>
	<tr>
		<td>
			<input name="produkt1" type="text" value="<%=RecSet("Produkt1")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal1" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek1" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris1" type="text" value="<%=RecSet("Pris1")%>" class="orderPris" />
		</td>
	</tr>
	<tr>
		<td>
			<input name="produkt2" type="text" value="<%=RecSet("Produkt2")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal2" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek2" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris2" type="text" value="<%=RecSet("Pris2")%>" class="orderPris" /><br />
		</td>
	</tr>
	<tr>
		<td>
			<input name="produkt3" type="text" value="<%=RecSet("Produkt3")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal3" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek3" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris3" type="text" value="<%=RecSet("Pris3")%>" class="orderPris" /><br />
		</td>
	</tr>
	<tr>
		<td>
			<input name="produkt4" type="text" value="<%=RecSet("Produkt4")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal4" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek4" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris4" type="text" value="<%=RecSet("Pris4")%>" class="orderPris" /><br />
		</td>
	</tr>
	<tr>
		<td>
			<input name="produkt5" type="text" value="<%=RecSet("Produkt5")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal5" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek5" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris5" type="text" value="<%=RecSet("Pris5")%>" class="orderPris" /><br />
		</td>
	</tr>
	<tr>
		<td>
			<input name="produkt6" type="text" value="<%=RecSet("Produkt6")%>" class="orderinput" />
		</td>
		<td>
			<input name="antal6" type="text" class="orderAntal" />
		</td>
		<td>
			<input name="storlek6" type="text" class="orderStorlek" />
		</td>
		<td>
			<input name="pris6" type="text" value="<%=RecSet("Pris6")%>" class="orderPris" /><br />
		</td>
	</tr>

	<tr>
		<td colspan="4" valign="top">Avbetalning:
			<input name="avbetalning" type="text" value="<%=RecSet("Avbetalning")%>" class="input" style="width:30px;" />kr/mån
		</td>
	</tr>

	<tr>
		<td colspan="4">
			Företag: <input name="foretag" type="text" class="input" style="width:100px;" />
			Pacsoft: <input type="checkbox" name="pacsoft" value="1" /> <input name="paketinnehall" type="text" style="width:101px;" />
		</td>
	</tr>
	<tr>
		<td colspan="4">
			Övriga noteringar:<br />
			<textarea name="orderOvrigt" rows="4" cols="39" /></textarea>
		</td>
	</tr>
</table>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/151487-mysql-en-djungel  
Nästa sida: https://www.webforum.nu/amne/asp/151487-mysql-en-djungel/page2.md
