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)
Annonceindlæg fra Computerworld it-jobbank
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?
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.
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" /> Pris(£): <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œlg her...</option> <%do until rsf.eof%> <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option> <%rsf.movenext loop%> </select> <% 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œ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>
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.
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
21. august 2008 - 11:13
#6
Har jeg mulighed for at se siden?
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 ?
21. august 2008 - 11:33
#8
p_kategori, p_fotograf, p_id og p_pris = tal p_img, p_titel og p_txt = tekst
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" /> Pris(£): <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œlg her...</option> <%do until rsf.eof%> <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option> <%rsf.movenext loop%> </select> <% 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œ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>
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" /> Pris(£): <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œlg her...</option> <%do until rsf.eof%> <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option> <%rsf.movenext loop%> </select> <% 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œ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%>
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.
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 ')
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!
21. august 2008 - 11:42
#14
Så din Request.Form("pid") er vel tom.
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?
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&"')"
21. august 2008 - 12:07
#17
:) Burde virke!
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
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" /> Pris(£): <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œlg her...</option> <%do until rsf.eof%> <option value="<%=rsf("f_id")%>"><%=rsf("f_txt")%></option> <%rsf.movenext loop%> </select> <% 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œ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>
22. august 2008 - 08:39
#20
Så desværre, men pointene ryger tilbage til mig.
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.
Kurser inden for grundlæggende programmering