1

フォーム入力を収集してデータベースに保存する必要があります。それはとても簡単です。難しいのは、長いテキストフィールドで一意のキーを作成できないことです。

このような状況で、ユーザーが重複したエントリを入力するのを防ぐために、通常は何が行われますか?

ありがとう、アレックス

4

4 に答える 4

4

更新しました

直接の質問:

この例のように、追加のフィールドを作成する必要があります

myId int(11) NOT NULL AUTO_INCREMENT,
myText TEXT,
myUnique VARCHAR(255) NOT NULL DEFAULT '0',
UNIQUE KEY myUnique (myUnique)

<form>
<textarea name="myText" ></textarea>
<input type="hidden" value="UNIQUE-ID" name="myUnique" />
</form>

ノート:

例:

$myUnique = crc32("The quick brown fox jumped over the lazy dog.");

さらなるSOリーディング:

于 2011-03-15T15:30:26.080 に答える
3

でトリガーされるエントリの個別MD5のハッシュを作成します。そのハッシュ列にはキーがあり、タイプである必要があります(常に同じサイズになるため)。これにより、一意のキーが可能になります。LONGTEXTINSERTUPDATEUNIQUECHAR

于 2011-03-15T15:32:41.933 に答える
1

長いテキストフィールドにインデックスを作成します。次に、レコードを保存する前に、既存のレコードでユーザーが入力したばかりのテストを検索します。見つかった場合は、保存を許可しないでください。

于 2011-03-15T15:28:54.667 に答える
0
 $text='the long text to be inserted the long text to be inserted the long text to be inserted the long text to be inserted';
 //assuming field name (mylongtextfield)
 $result=mysql_query("SELECT id FROM mytable WHERE md5(mylongtextfield)='".md5($text)."'";
 if(!$result){
      //do your insert query
 }else{
      echo "the text already exist!";   
 }
于 2012-12-26T09:30:17.267 に答える