ASP 上の古いアプリケーションを移行しています。あるページには、MySQL データベースの LONGTEXT フィールドからの HTML テキストが表示されています。新しいサーバーでは、この LONGTEXT フィールドから得られるテキストのみが表示されません。
ここで提案されているように、LONGTEXT を CHAR に変換しようとしました。
mysql の LONGTEXT 値を VARCHAR 値に変換しますか?
SELECT ID, CAST(YourLongText as char(255)) AS YourVarchar FROM some_table
これは機能しますが、保存されるテキストはそれよりも長くなります。 char(10000)を使ってみました。このクエリは SQL Manager for MySQL では機能しますが、Web アプリケーションで使用すると何も表示されません (空)。
IIS の設定を見逃した可能性があります。 ¿どこを見ればよいですか? ¿LONGTEXT を適切にキャストする方法はありますか?
LONGTEXT に保存されるテキストは次のようになります。
<font style=font-family:Tahoma;font-size:12px>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> <table> <tbody><tr> <td> <font style=font-family:Tahoma;font-size:12px>1111111111</p> </td> <td> <font style=font-family:Tahoma;font-size:12px>PERSON NAME</p> </td> <td> <font style=font-family:Tahoma;font-size:12px>PERSON MIDDLE NAME</p> </td> <td> <font style=font-family:Tahoma;font-size:12px>PERSON LASTNAME</p> </td> </tr> </tbody></table>
私は次のように .ASP 上のフィールドを読んでいます:
sql = "SELECT ID, CAST(YourLongText as char(255)) AS YourVarchar FROM some_table"
set rs = db.execute(sql)
if not rs.eof then
'nothing
else
%>
<div align="justify"><span style="font-family: Tahoma; font-size: 12px"><%=rs("YourVarchar")%></span></div>
<%
end if
編集 1: HTML何も間違っていません。 LONGTEXT を「Test」というテキストだけで置き換えてみましたが、どちらも表示されません。
おそらく、myodbc ドライバの問題または設定ミスが考えられます。
– シャドウ
2020 年 9 月 4 日 23:33
@Shadow 両方のサーバーに mysql odbc 5.1.6 がインストールされています
– ロドリック
2020 年 9 月 5 日 3:26
おそらく、新しいバージョンをインストールしてみる必要があります。
– シャドウ
2020 年 9 月 5 日 7:26
アプリケーションは通常ローカルで LONGTEXT フィールドを表示できますが、iis では公開できないということですか? F12 を使用すると、エラー メッセージがあるかどうかを確認できます。
– サムウ
2020 年 9 月 7 日 9:02
rs("YourVarchar") の値を出力するコードはどこですか?
– user2316116
2020 年 9 月 19 日 16:12
------------------------
この問題は、MySQL コネクタ ODBC のバージョンを 5.1.1 から 5.1.6 バージョンにアップグレードすることで解決されました。