【发布时间】:2013-09-18 19:17:43
【问题描述】:
我正在为我的客户从 ACCESS 数据库更改为 MYSQL 5 数据库。他们的网站完全用经典的 ASP 编码。
我使用了一个工具(Navicat for MySQL)将所有表和数据从访问 MySQL 中导入。看起来效果很好。
我现在正在尝试测试他们用来管理产品数据(存储在数据库中)的网站和管理功能。
在 ASP 管理部分编辑产品时,他们可以更新价格、描述等。
从功能上讲,它有效。但是对于两个问题:
1) 更新asp表单中的价格并提交时,数据库中的值是错误的。 (即我输入 1189 美元,数据库中的值变为 11890000.00)。我输入的数字总是加了四个零。数据库中的数据类型是 Decimal 19,4 - 据我所知,这是推荐的货币数据类型。
2) 在asp表单中,我们还可以更新产品的描述。但是,当提交到数据库时,我输入的任何描述都会变成:“t‹”(基本上是胡言乱语)。我认为这与字符集可能不正确有关,但据我所知,它们没问题。数据库使用默认的 latin1 -- cp1252 并且网页/应用程序使用 iso-8859-1(我相信是相同的)。同样奇怪的是,只有描述才有问题。描述的数据类型是 LONGTEXT。所有其他值(如产品名称)都会更新并正确存储到数据库中(例如,产品名称是一个 varchar)。
我一直在尝试用谷歌搜索这些问题以找到答案,我很惊讶没有运气。我是 MySQL 新手,所以如果答案很明显,我很抱歉!
希望这是将记录写入数据库的代码:
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = true
Upload.SetMaxSize 2048576 ' Limit files to 1MB
Upload.Save session("rootpath")&"\public\graphics\uploads\"
dim rst, oc, pid
pid = Upload.Form("pid")
set rst = Server.CreateObject("ADODB.Recordset")
rst.Open "SELECT * FROM Trailers WHERE Trailer_ID="&pid, connection, adOpenDynamic, adLockOptimistic
rst("Trailer_Description") = Upload.Form("description")
rst("Trailer_Price") = Upload.Form("price")
rst.Update
注意:使用“Upload.Form”而不是 request.form,因为图像是使用 ASP.Upload 组件在此表单中上传的 - 创建上传对象。我已经采取了一切措施来隔离问题......
谢谢,
【问题讨论】:
-
这是两个独立的问题,发布的代码为零行很难回答。
-
@tadman 我认为他们有可能是相关的问题,所以我把它们放在一起。并且不确定问题是否与代码、数据类型或字符集等有关,所以不知道要包括什么。希望有人能有一个理论......
-
您需要发布将记录插入数据库的代码。您可能转换错误,或者您的字符编码设置不正确。这些问题不一定相关。
-
好的@tadman——我添加了一个代码示例。这似乎是我想做的一件简单的事情,它让我把头发拔了出来。提前感谢您的帮助...
-
执行
INSERT的代码会更好。
标签: mysql asp-classic