クライアントの ACCESS データベースから MYSQL 5 データベースに変更中です。彼らの Web サイトは、従来の ASP で完全にコーディングされています。
ツール (Navicat for MySQL) を使用して、MySQL へのアクセスからすべてのテーブルとデータをインポートしました。本当によく頑張ったようです。
私は現在、ウェブサイトと、製品データ (データベースに保存されている) を管理するために使用する管理機能をテストしようとしています。
ASP 管理セクションで製品を編集すると、価格、説明などを更新できます。
機能的には、動作します。しかし、次の 2 つの問題があります。
1) ASP フォームで価格を更新して送信すると、データベースの値が間違っています。(つまり、$1189 と入力すると、データベースの値は 11890000.00 になります)。入力する数値には常に 4 つのゼロが追加されます。データベースのデータ型は 10 進数 19,4 です。これは、私が知る限り、通貨に推奨されるデータ型です。
2) asp フォーム内で、製品の説明を更新することもできます。ただし、データベースに送信すると、入力した説明はすべて「t‹」(基本的には冗談です)のようになります。これはおそらく文字セットが間違っていることに関連していると思いましたが、私が知る限り、それらは問題ありません。データベースはデフォルトの latin1 -- cp1252 を使用し、Web ページ/アプリケーションは 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
注: ASP.Upload コンポーネント (アップロード オブジェクトの作成) を使用してこのフォーム内に画像がアップロードされるため、request.form の代わりに「Upload.Form」が使用されます。問題を特定するために、他のすべてを取りました...
ありがとう、