Avatar billede christina137 Nybegynder
21. august 2008 - 09:55 Der er 20 kommentarer og
1 løsning

insert into...MySQL

Her er problemet:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
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 ',6,'fgh.jpg','ffghf',30,'<p>fhgfhgfhf</p>')' at line 1
/eksamenstest/byskov/cms/product_ny.asp, line 15

Jeg bruger en MySQL database kaldet galleri, herfra trækker jeg oplysninger fra tabellerne: fotograf og katagori til brug i et par rullemenuer der kan anvendes af brugeren ved indsættelse af data i tabellen plakater (denne tabel indeholder oplysninger om image, titel, pris, tekst, kunstner og kategori)

Her er linierne 14+15 der skulle forårsage problemet:
    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&""&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Conn.Execute(sqlI)
Avatar billede w13 Novice
21. august 2008 - 10:07 #1
Prøv lige med:

    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Response.Write sqlI
    Conn.Execute(sqlI)

Så skulle den udskrive, hvordan hele din SQL kommer til at se ud, når dine variabler sættes ind.

Jeg fjernede i øvrigt "&" som ikke gjorde nogen forskel, men kun forvirrede.

Er du sikker på, at du har ' (apostrof) om alle dine felter, som ikke er af numerisk type i databasen?
Avatar billede christina137 Nybegynder
21. august 2008 - 10:35 #2
Nu får jeg dette svar:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
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 ',6,'fgh.jpg','ffghf',30,'<p>fhgfhgfhf</p>')' at line 1
/eksamenstest/byskov/cms/product_ny.asp, line 16

Her er linie 14-16:
sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
Response.Write sqlI
Conn.Execute(sqlI)

Jeg mener jeg har ' om alle de rigtige felter, da p_kategori, p_fotograf, p_id og p_pris alle har talværdier.
Avatar billede christina137 Nybegynder
21. august 2008 - 10:40 #3
Sådan ser hele siden ud - måske hjælper det mere:

<%
If Request.ServerVariables("CONTENT_LENGTH") <> 0 then
%>
<!-- #include file="../includes/dbconnect.asp" -->
<%
    p_id = Request.Form("pid")
    p_kategori = Request.Form("pkategori")
    p_fotograf = Request.Form("pfotograf")
    p_img = Request.Form("pimg")
    p_titel = replace(Request.Form("ptitel"),"'","''")
    p_pris = Request.Form("ppris")
    p_txt = replace(Request.Form("ptxt"),"'","''")   
   
    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Response.Write sqlI
    Conn.Execute(sqlI)

    Response.Redirect("cms_index.asp?page=product&act=product")
End if

btnSend = "Opret"
%>
    <form method="post" action="product_ny.asp" name="opretproduct">
        <input type="hidden" name="pid" value="<%=productid%>" />
        Overskrift: <input type="text" name="ptitel" /><br />
        <%
        'Dim oFCKeditor
        Set oFCKeditor = New FCKeditor
        oFCKeditor.BasePath = "fckeditor/"
        oFCKeditor.Toolbarset = "Basic"
        oFCKeditor.Width = "430"
        oFCKeditor.Create "ptxt"
        %>
        <br /><br />
        Billede: <input type="text" name="pimg" />
          &nbsp;
        Pris(&pound;): <input type="price" name="ppris" />
        <br /><br />
        <%
        sqlf = "SELECT * FROM fotograf ORDER BY f_txt ASC"
        set rsf = Conn.Execute(sqlf)
        %>
        Fotograf:     <select size="1" name="pfotograf">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsf.eof%>
                    <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option>
                    <%rsf.movenext
                    loop%>
                    </select>
        &nbsp;
        <%
        sqlk = "SELECT * FROM kategori ORDER BY k_txt ASC"
        set rsk = Conn.Execute(sqlk)
        %>
        Kategori:     <select size="1" name="pkategori">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsk.eof%>
                    <option value="<%=rsk("k_id")%>"><%=rsk("k_txt")%></option>
                    <%rsk.movenext
                    loop%>
                    </select>
        <br /><br />
        <input type="submit" value="<%=btnSend%>" />
    </form>
Avatar billede w13 Novice
21. august 2008 - 10:58 #4
Fjern lige:

    Conn.Execute(sqlI)

    Response.Redirect("cms_index.asp?page=product&act=product")

så vi kan se, hvad den udskriver til os.
Avatar billede christina137 Nybegynder
21. august 2008 - 11:06 #5
Så skriver den dette her:

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01FA)
Klasse ikke defineret: 'FCKeditor'
/eksamenstest/byskov/cms/product_ny.asp, line 26
Avatar billede w13 Novice
21. august 2008 - 11:13 #6
Har jeg mulighed for at se siden?
Avatar billede w13 Novice
21. august 2008 - 11:13 #7
Hvilke af disse felter er tal og hvilke er tekst i din database: p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt ?
Avatar billede christina137 Nybegynder
21. august 2008 - 11:33 #8
p_kategori, p_fotograf, p_id og p_pris = tal
p_img, p_titel og p_txt = tekst
Avatar billede christina137 Nybegynder
21. august 2008 - 11:34 #9
Siden ligenu:

<%
If Request.ServerVariables("CONTENT_LENGTH") <> 0 then
%>
<!-- #include file="../includes/dbconnect.asp" -->
<%
    p_id = Request.Form("pid")
    p_kategori = Request.Form("pkategori")
    p_fotograf = Request.Form("pfotograf")
    p_img = Request.Form("pimg")
    p_titel = replace(Request.Form("ptitel"),"'","''")
    p_pris = Request.Form("ppris")
    p_txt = replace(Request.Form("ptxt"),"'","''")   
   
    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Response.Write sqlI

End if

btnSend = "Opret"
%>
    <form method="post" action="product_ny.asp" name="opretproduct">
        <input type="hidden" name="pid" value="<%=productid%>" />
        Overskrift: <input type="text" name="ptitel" /><br />
        <%
        'Dim oFCKeditor
        Set oFCKeditor = New FCKeditor
        oFCKeditor.BasePath = "fckeditor/"
        oFCKeditor.Toolbarset = "Basic"
        oFCKeditor.Width = "430"
        oFCKeditor.Create "ptxt"
        %>
        <br /><br />
        Billede: <input type="text" name="pimg" />
          &nbsp;
        Pris(&pound;): <input type="price" name="ppris" />
        <br /><br />
        <%
        sqlf = "SELECT * FROM fotograf ORDER BY f_txt ASC"
        set rsf = Conn.Execute(sqlf)
        %>
        Fotograf:     <select size="1" name="pfotograf">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsf.eof%>
                    <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option>
                    <%rsf.movenext
                    loop%>
                    </select>
        &nbsp;
        <%
        sqlk = "SELECT * FROM kategori ORDER BY k_txt ASC"
        set rsk = Conn.Execute(sqlk)
        %>
        Kategori:     <select size="1" name="pkategori">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsk.eof%>
                    <option value="<%=rsk("k_id")%>"><%=rsk("k_txt")%></option>
                    <%rsk.movenext
                    loop%>
                    </select>
        <br /><br />
        <input type="submit" value="<%=btnSend%>" />
    </form>
Avatar billede w13 Novice
21. august 2008 - 11:36 #10
Prøv lige:

<%
If Request.ServerVariables("CONTENT_LENGTH") <> 0 then
%>
<!-- #include file="../includes/dbconnect.asp" -->
<%
    p_id = Request.Form("pid")
    p_kategori = Request.Form("pkategori")
    p_fotograf = Request.Form("pfotograf")
    p_img = Request.Form("pimg")
    p_titel = replace(Request.Form("ptitel"),"'","''")
    p_pris = Request.Form("ppris")
    p_txt = replace(Request.Form("ptxt"),"'","''")   
   
    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Response.Write sqlI
Else

btnSend = "Opret"
%>
    <form method="post" action="product_ny.asp" name="opretproduct">
        <input type="hidden" name="pid" value="<%=productid%>" />
        Overskrift: <input type="text" name="ptitel" /><br />
        <%
        'Dim oFCKeditor
        Set oFCKeditor = New FCKeditor
        oFCKeditor.BasePath = "fckeditor/"
        oFCKeditor.Toolbarset = "Basic"
        oFCKeditor.Width = "430"
        oFCKeditor.Create "ptxt"
        %>
        <br /><br />
        Billede: <input type="text" name="pimg" />
          &nbsp;
        Pris(&pound;): <input type="price" name="ppris" />
        <br /><br />
        <%
        sqlf = "SELECT * FROM fotograf ORDER BY f_txt ASC"
        set rsf = Conn.Execute(sqlf)
        %>
        Fotograf:    <select size="1" name="pfotograf">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsf.eof%>
                    <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option>
                    <%rsf.movenext
                    loop%>
                    </select>
        &nbsp;
        <%
        sqlk = "SELECT * FROM kategori ORDER BY k_txt ASC"
        set rsk = Conn.Execute(sqlk)
        %>
        Kategori:    <select size="1" name="pkategori">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsk.eof%>
                    <option value="<%=rsk("k_id")%>"><%=rsk("k_txt")%></option>
                    <%rsk.movenext
                    loop%>
                    </select>
        <br /><br />
        <input type="submit" value="<%=btnSend%>" />
    </form>
<%End if%>
Avatar billede w13 Novice
21. august 2008 - 11:37 #11
Denne skulle gerne vise os din SQL-sætning, sådan som den bliver sat sammen. Den skal vi se for at vide, hvad der går galt.
Avatar billede christina137 Nybegynder
21. august 2008 - 11:39 #12
Det gik helt galt, nu forsvandt hjemmesiden og istedet stod der kun dette:

INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES (,1,6,'fgh.jpg','gfhgfh',30,'
fhgh

')
Avatar billede w13 Novice
21. august 2008 - 11:41 #13
Det gik ikke galt. Jeg satte den til at forsvinde, så vi kunne se den besked.

Og helt rigtigt:

(,1,6,'fgh.jpg','gfhgfh',30,'fhgh')

Her kan vi jo se, at den første værdi helt mangler! Der kan jo ikke indledes med et komma her.

Så nu kan du indsætte din gamle kode igen. Nu ved vi nemlig, at problemet opstår med variablen p_id, som er tom.

Dvs. at følgende:

p_id = Request.Form("pid")

ikke duer. p_id bliver ikke sat!
Avatar billede w13 Novice
21. august 2008 - 11:42 #14
Så din Request.Form("pid") er vel tom.
Avatar billede christina137 Nybegynder
21. august 2008 - 11:56 #15
Min p_id er sat til Auto Inkrementiel - så den burde selv sætte et id-nr.
og den er vel tom fordi den endnu ikke er oprettet eller hvad?
Avatar billede w13 Novice
21. august 2008 - 12:05 #16
Tjaeh, det kunne godt tænkes. Så prøv at rette:

    sqlI = "INSERT INTO plakater (p_id, p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_id&","&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"

til:

    sqlI = "INSERT INTO plakater (p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
Avatar billede w13 Novice
21. august 2008 - 12:07 #17
:) Burde virke!
Avatar billede christina137 Nybegynder
22. august 2008 - 08:02 #18
Det virker desværre heller ikke.

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01FA)
Klasse ikke defineret: 'FCKeditor'
/eksamenstest/byskov/cms/product_ny.asp, line 26

Linie 26 er denne linie:
Set oFCKeditor = New FCKeditor
Avatar billede christina137 Nybegynder
22. august 2008 - 08:38 #19
Jeg har fået hjælp på klassen og dette blev resultatet:

<%
If Request.ServerVariables("CONTENT_LENGTH") > 0 then
%>
<!-- #include file="../includes/dbconnect.asp" -->
<%
    p_id = Request.Form("pid")
    p_kategori = Request.Form("pkategori")
    p_fotograf = Request.Form("pfotograf")
    p_img = Request.Form("pimg")
    p_titel = replace(Request.Form("ptitel"),"'","''")
    p_pris = Request.Form("ppris")
    p_txt = replace(Request.Form("ptxt"),"'","''")   
   
    sqlI = "INSERT INTO plakater (p_kategori, p_fotograf, p_img, p_titel, p_pris, p_txt) VALUES ("&p_kategori&","&p_fotograf&",'"&p_img&"','"&p_titel&"',"&p_pris&",'"&p_txt&"')"
    Conn.Execute(sqlI)
    Response.Redirect(request.ServerVariables("HTTP_REFERER"))
End if

btnSend = "Opret"
%>
    <form method="post" action="product_ny.asp" name="opretproduct">
        <input type="hidden" name="pid" value="<%=productid%>" />
        Overskrift: <input type="text" name="ptitel" /><br />
        <%
        'Dim oFCKeditor
        Set oFCKeditor = New FCKeditor
        oFCKeditor.BasePath = "fckeditor/"
        oFCKeditor.Toolbarset = "Basic"
        oFCKeditor.Width = "430"
        oFCKeditor.Create "ptxt"
        %>
        <br /><br />
        Billede: <input type="text" name="pimg" />
          &nbsp;
        Pris(&pound;): <input type="price" name="ppris" />
        <br /><br />
        <%
        sqlf = "SELECT * FROM fotograf ORDER BY f_txt ASC"
        set rsf = Conn.Execute(sqlf)
        %>
        Fotograf:     <select size="1" name="pfotograf">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsf.eof%>
                    <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option>
                    <%rsf.movenext
                    loop%>
                    </select>
        &nbsp;
        <%
        sqlk = "SELECT * FROM kategori ORDER BY k_txt ASC"
        set rsk = Conn.Execute(sqlk)
        %>
        Kategori:     <select size="1" name="pkategori">
                    <option selected="selected" value="">V&oelig;lg her...</option>
                    <%do until rsk.eof%>
                    <option value="<%=rsk("k_id")%>"><%=rsk("k_txt")%></option>
                    <%rsk.movenext
                    loop%>
                    </select>
        <br /><br />
        <input type="submit" value="<%=btnSend%>" />
    </form>
Avatar billede christina137 Nybegynder
22. august 2008 - 08:39 #20
Så desværre, men pointene ryger tilbage til mig.
Avatar billede w13 Novice
22. august 2008 - 12:37 #21
Det er helt i orden. Men bortset fra det, så havde den sidste fejl intet med din Insert Into at gøre og derimod med din editor.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester