0

「st paul's school」のような値を mysql データベースに保存したいと考えています。ただし、特殊な記号 ' のために、その ような値を mysql に保存できません。varchar データ型を試しましたが、うまくいきません。'を mysqlに格納するための適切な方法またはデータ型を提案してください。

4

5 に答える 5

4

この''のように2つの一重引用符を追加するか、このようにエスケープします\ '

于 2013-02-05T12:44:07.080 に答える
1

MySQLサーバーで直接実行している場合は、一重引用符を2倍にすると、機能します。例

INSERT INTO tableName VALUES ('St. Paul''s School')

ただし、フロントエンドでは、これにPreparedStatementsを使用します。

を使用している場合は、これをPHP使用PDOまたはMySQLI拡張して、を回避してくださいSQL Injection。以下の記事をご覧ください。

于 2013-02-05T12:43:52.637 に答える
0

このアポストロフを使用する変数がある場合htmlentities

 $your_var = "St. Paul's School";
 $your_var = htmlentities($your_var);
 INSERT INTO tableName VALUES ('$your_var')

文字列だけの場合、そのような二重引用符を使用できます

 INSERT INTO tableName VALUES ("St. Paul's School")
于 2013-02-05T12:46:33.223 に答える
0

引用符をそのエンティティに置き換えるだけです。phpを使用している場合

<?php
    $str = "st paul's school";
    $str = str_replace("\'","&acute;",$str);
    $str = str_replace("\"","&quot;",$str);
?>

使用することもできます

$str= htmlentities($str,ENT_QUOTES, 'UTF-8');
于 2013-02-05T12:52:05.290 に答える
0

mysqli_real_escape_string($text) を使用して、データベースに挿入するテキスト内の ' をエスケープできます。

于 2013-02-05T12:54:49.370 に答える