2

MySQlテーブルにテキストを挿入するのが心配ですw。/"や'などの文字を含むテキストを挿入/更新する必要があります

エスケープ文字/は、NO_BACKSLASH_ESCAPESSQLモードが有効になっている場合にのみ挿入できます。文字「および」に干渉する場合は、このリンクを参照してくださいhttp://dev.mysql.com/doc/refman/5.1/en/string-literals.html#character-escape-sequences

誰かが説明できるのであれば、地球上にmysql_real_escape_string()があります。

PHPを使用していない純粋なmysqlソリューションを見つけたいと思います。ここで私がやろうとしているのは、コンテンツ管理システムを「シミュレート」することです。さまざまな形式(記事、カテゴリ、タグなど)でコンテンツを管理し、.htmlファイルを生成するC#コード化ソリューションを作成しようとしています。 MySQlデータベースは私のコンピューターのローカルです。次に、.htmlファイルをサーバーにアップロードします。

これは、すべてのhtmlページがhtmlで有効であることを確認するためであり、既存のソリューションを信頼していないためです(コーディングに関する場合だけでなく、一般的な生活においても)

助けてください

4

2 に答える 2

0

各 php db 接続拡張機能 ( mysql、mysqli、pdo ) には、SQL インジェクションに対して安全なクエリを実行する特別な方法があります。mysql 拡張機能を使用している場合は、mysql_real_escape_string()関数を使用して、クエリで使用されるすべての変数を安全にすることを強くお勧めします。 . 純粋な解決策はないと思います(phpでmysql拡張機能を使用している場合)。php.netから:

mysql_real_escape_string() - 接続の現在の文字セットを考慮して、 mysql_query() に安全に配置できるように、unescaped_string 内の特殊文字をエスケープします。

于 2012-12-24T18:20:00.530 に答える
-1

2 つのルールに従ってフォーマットされている場合、SQL クエリに挿入できる文字列データは何でも

  • 引用符で囲まれています(できれば単一のもの)
  • mysql_real_escape_string() を介して渡されます

両方の規則に従えば、スラッシュ、引用符など、どのような文字でも問題は 1 つもありません。

あなたの質問によると/、MySQL では特別な意味はありません。それ\がエスケープ文字です。別のバックスラッシュでもエスケープできます。

$str = 'slashes \ quotes \' or whatever " else symbols';
var_dump($str);
$str = mysql_real_escape_string($str);
$sql = "INSERT INTO table SET str='$str'";
于 2012-12-24T18:18:49.297 に答える