フォーム入力を収集してデータベースに保存する必要があります。それはとても簡単です。難しいのは、長いテキストフィールドで一意のキーを作成できないことです。
このような状況で、ユーザーが重複したエントリを入力するのを防ぐために、通常は何が行われますか?
ありがとう、アレックス
フォーム入力を収集してデータベースに保存する必要があります。それはとても簡単です。難しいのは、長いテキストフィールドで一意のキーを作成できないことです。
このような状況で、ユーザーが重複したエントリを入力するのを防ぐために、通常は何が行われますか?
ありがとう、アレックス
更新しました
直接の質問:
この例のように、追加のフィールドを作成する必要があります
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リーディング:
でトリガーされるエントリの個別MD5
のハッシュを作成します。そのハッシュ列にはキーがあり、タイプである必要があります(常に同じサイズになるため)。これにより、一意のキーが可能になります。LONGTEXT
INSERT
UPDATE
UNIQUE
CHAR
長いテキストフィールドにインデックスを作成します。次に、レコードを保存する前に、既存のレコードでユーザーが入力したばかりのテストを検索します。見つかった場合は、保存を許可しないでください。
$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!";
}