現在テーブルのひとつの項目(LONGTEXT形式)にhtmlファイルを保存しています。
データ量がひとつあたり10KBと結構あり、文自体が結構長いです。
登録は出来たのですがこれをいざエクスポートしようとするとエクスポートの画面にhtmlの画面が出てきて、落としたエクセルにはアラビア語のようなバグが発生してしまいます。
またこの状態でデータベースの編集画面で編集ボタンを押すと空白ページへ切り替わって画面が見れなくなります。
データのアクセスが出来ない状況です。
PHP上でデータベースのパラメータを変えるとデータベースに入っているhtmlのデータの内容も同時に変わるという事をしたく、文章が長くてもそういった場所を整えてセルの中に文章を保存したいとは考えています。
一応登録する前は’や”の前に¥を全て置いてエスケープは施しました。
echo で出力してみたのですが、登録したデータに全く問題はなく、綺麗にHTMLが出力されます。
こういった長い文章のデータをデータベースで大量に保存していくのは危険でしょうか?
対処方法など分かる方おりましたらよろしくお願いします。
まずDBの種類によって対応が変わるのでそれを明示してください。
あとバージョンも正確に。
登録は出来たのですがこれをいざエクスポートしようとするとエクスポートの画面にhtmlの画面が出てきて、落としたエクセルにはアラビア語のようなバグが発生してしまいます。
どんな方法でエクスポートしようとしたのですか?単にエクスポートの仕方がまずかっただけの気がします。
一応登録する前は’や”の前に¥を全て置いてエスケープは施しました。
エスケープする文字はそれだけでは足りません。
PHP であればそれぞれのDBごとに専用(無ければ汎用のもの)のエスケープ処理関数があるのでそちらを使ってください。
素人処理は危険な部分です。
例)MySQL の場合 mysql_real_escape_string 関数を使用する。
echo で出力してみたのですが、登録したデータに全く問題はなく、綺麗にHTMLが出力されます
では一旦登録自体は出来ていると考えても差し支えないでしょう。
こういった長い文章のデータをデータベースで大量に保存していくのは危険でしょうか?
数MBクラスならともかく数KB程度で根をあげたり危険な現象が起こるようなDBは
現在比較的使われているものの中では存在しません。
もちろんデータ容量的に後々性能問題が起こることはありますがそれはまた別の話です。
うまいやり方かどうかは別として特に問題のあるやり方ではないです。
対処方法など分かる方おりましたらよろしくお願いします。
もう少し使用しているDB・管理ソフトなどを説明していただかないと説明のし様がありません。
プログラムによるSQLの実行においてプレースホルダを使わないで自前エスケープすることほど愚かなことは無いと思う。
プレースホルダでググると幸せになれると思います。
ご回答ありがとうございます。
まずDBの種類によって対応が変わるのでそれを明示してください。
あとバージョンも正確に。
登録は出来たのですがこれをいざエクスポートしようとするとエクスポートの画面にhtmlの画面が出てきて、落としたエクセルにはアラビア語のようなバグが発生してしまいます。
どんな方法でエクスポートしようとしたのですか?単にエクスポートの仕方がまずかっただけの気がします。
一応登録する前は’や”の前に¥を全て置いてエスケープは施しました。
エスケープする文字はそれだけでは足りません。
PHP であればそれぞれのDBごとに専用(無ければ汎用のもの)のエスケープ処理関数があるのでそちらを使ってください。
素人処理は危険な部分です。
例)MySQL の場合 mysql_real_escape_string 関数を使用する。
echo で出力してみたのですが、登録したデータに全く問題はなく、綺麗にHTMLが出力されます
では一旦登録自体は出来ていると考えても差し支えないでしょう。
こういった長い文章のデータをデータベースで大量に保存していくのは危険でしょうか?
数MBクラスならともかく数KB程度で根をあげたり危険な現象が起こるようなDBは
現在比較的使われているものの中では存在しません。
もちろんデータ容量的に後々性能問題が起こることはありますがそれはまた別の話です。
うまいやり方かどうかは別として特に問題のあるやり方ではないです。
対処方法など分かる方おりましたらよろしくお願いします。
もう少し使用しているDB・管理ソフトなどを説明していただかないと説明のし様がありません。
ご回答ありがとうございます。
バージョンですが
PHP/5.1.6
MySQL - 5.0.45
phpMyAdmin - 2.8.2.4
になります。
使用しているDBは使えるねっとのアドバンスコースです。
5GBまでデータ登録できるみたいです。
>こういった長い文章のデータをデータベースで大量に保存していくのは危険でしょうか?
大丈夫です。WordPressとかでも普通にそうしてますよ。
ご回答ありがとうございます。
phpMyAdminを利用しているようなので、
インポート時のphpのメモリーサイズに気をつけたほうがいいかもしれませんね。
http://php.benscom.com/manual/ja/ini.core.php
あと、phpからDBにInsertする場合、プレースホルダーを利用するといいと思います。
エスケープすべき文字をチェックしてたら大変ですし、安全な処理をする方法がありますし。
phpならPDOの利用をお勧めします。
この辺りを参照してみてはいかがでしょうか。
http://php.benscom.com/manual/ja/pdo.prepared-statements.php
ご回答ありがとうございます。
ご回答ありがとうございます。
バージョンですが
PHP/5.1.6
MySQL - 5.0.45
phpMyAdmin - 2.8.2.4
になります。
使用しているDBは使えるねっとのアドバンスコースです。
5GBまでデータ登録できるみたいです。