4

現在、オンライン モバイル エクスペリエンスで使用するために、mysql データベースの xml エクスポートを websql データベースにインポートしています。

挿入する文字列に二重引用符が含まれるまで、すべてがうまく機能します。通常、PHP では、挿入中に mysql_real_escape_string のようなものを使用します。

私が試すことができるオプションは、正規表現を記述し、スラッシュを追加/削除するための関数を作成することです。これについてはグーグルで多くの例がありますが、私が見ているのは、他の誰かがこれに遭遇したかどうか、そしておそらくより良い解決策があるかどうかです.

助けてくれてありがとう!

4

2 に答える 2

6

逃げることを忘れてください。正しく行いましょう: プレースホルダーを使用してください。この場合、データは生のデータ文字列以外のものとして扱われることはありません。Web SQL では、これは で実行できますexecuteSql。これがどのように機能するかについての説明については、前処理セクションを参照してください。

ドキュメントのイントロから直接の例:

db.readTransaction(function (t) {
  t.executeSql('SELECT title, author FROM docs WHERE id=?', [id], function (t, data) {
    report(data.rows[0].title, data.rows[0].author);
  });
});

変数の内容に関係なくid、このリクエストは逐語的な値を探し、コマンドの一部として解釈されることはありません。

于 2012-07-29T16:55:16.030 に答える
0

簡単な回避策は、AJAX リクエストを使用して XML 文字列を PHP に送信することです。これにより、引用符がエスケープされた文字列が返されます。

于 2012-07-29T16:45:29.697 に答える