数据无法从经典ASP网站正确写入MySQL 5数据库

时间:2013-09-18 19:17:43

标签: mysql asp-classic

我正在为我的客户从ACCESS数据库更改为MYSQL 5数据库。他们的网站完全用经典ASP编码。

我使用了一个工具(Navicat for MySQL)从访问MySQL导入所有表和数据。似乎工作得很好。

我现在正在尝试测试用于管理其产品数据(存储在数据库中)的网站和管理功能。

在ASP管理部分编辑产品时,他们可以更新价格,说明等。

从功能上讲,它有效。但是有两个问题:

1)在更新asp表单中的价格并提交时,数据库中的值是错误的。 (即我输入$ 1189,数据库中的值变为11890000.00)。我输入的数字总是加上四个零。数据库中的数据类型是十进制19,4 - 据我所知,它可以告诉推荐的货币数据类型。

2)在asp表单中,我们还可以更新产品的描述。然而,当提交到数据库时,我输入的任何描述都变成类似:“t”(基本上是乱七八糟)。我认为这与字符集可能不正确有关,但据我所知他们没问题。数据库使用默认的latin1 - cp1252,网页/应用程序使用iso-8859-1(我相信它是相同的)。同样奇怪的是它只是描述是一个问题。描述的数据类型是LONGTEXT。所有其他值(如产品名称)都会更新并正确存储到数据库中(例如,产品名称是varchar)。

我一直在努力谷歌这些问题找到答案,我很惊讶没有运气。我是MySQL的新手,所以如果答案很明显,我很抱歉!

希望这里是将记录写入db的代码:

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组件在此表单中上传图像 - 创建上传对象。为了隔离问题,我已经采取了其他所有措施......

谢谢,

1 个答案:

答案 0 :(得分:0)

如果应用程序有数据库创建脚本,那么最好使用它来创建表等,然后将数据从Access移植到MySQL。

我没有使用过Navicat,所以我不能说它有多好/无法工作 - 但在我工作的另一个项目中,从Access迁移到MySQL一直存在问题,除非你让程序创建表,索引,默认值等,然后只是单独移动数据。