ホームページ バックエンド開発 PHPチュートリアル 问关于sql语句防止用户重复提交有时候不起作用解决方案

问关于sql语句防止用户重复提交有时候不起作用解决方案

Jun 13, 2016 am 09:58 AM
insert query quot record

问关于sql语句防止用户重复提交有时候不起作用
有一个问答表单,用户选择好选项之后提交,我先用一个sql语句加上限制,使得回答正确的人就不用再回答了:

SQL code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->select * from q_record where username='$username' and  isright=1 limit 1
ログイン後にコピー

如果找不到,则执行插入语句:
SQL code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->insert into q_record...
ログイン後にコピー

但是发现,数据库里面仍然会有个用户的isright=1的数量大于1,而且时间是同一秒的,不知道是什么原因?是不是数据库反应不过来了,还没有做好select判断,就执行了insert语句?

------解决方案--------------------
我想看看你的php代码. 另外SQL也不需要这么写.
------解决方案--------------------
你这个不是同个表么?q_record 怎么是用insert into 不是update set?


------解决方案--------------------
加个时间限制,js和php都限制,js限制是一般情况的限制,php再在session中存放上次回答时间,到时候进行限制就行了,如果问题是因为极短时间内重复提交的原因
------解决方案--------------------
探讨

引用:
你这个不是同个表么?q_record 怎么是用insert into 不是update set?
insert into是记录用户的回答记录,如果已经答对了,就提示用户不用再答了,否则就让用户再来回答。

------解决方案--------------------
说起这个防止用户重复提交,连号称最大社区的csdn也没解决,,昨天一个getTime()的问题,,我只提交了一遍,出来显示2个,扣了40分,我擦
------解决方案--------------------
$query = "select * from q_record where username='$username' and isright=1 limit 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row) {
echo "你已经答对该题了,不需要再回答哦!";
 
}else{
$query = "insert into q_record (pid,question,isright,time) values ('$pid','$question','$isright','$time')";
$result = mysql_query($query);
}
?>
这样试一下
------解决方案--------------------
数据库表的结构是什么样的。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Power Query で複数の列をドラッグ アンド ドロップで並べ替える方法 Power Query で複数の列をドラッグ アンド ドロップで並べ替える方法 Mar 14, 2024 am 10:55 AM

この記事では、PowerQuery で複数の列をドラッグ アンド ドロップで並べ替える方法を説明します。さまざまなソースからデータをインポートする場合、列が希望の順序にならないことがよくあります。列の順序を変更すると、分析やレポートのニーズに合った論理的な順序で列を配置できるだけでなく、データの読みやすさが向上し、フィルタリング、並べ替え、計算の実行などのタスクが高速化されます。 Excelで複数の列を並べ替えるにはどうすればよいですか? Excel で列を再配置する方法はたくさんあります。列ヘッダーを選択し、目的の場所にドラッグするだけです。ただし、多くの列を含む大きなテーブルを扱う場合、このアプローチは面倒になる可能性があります。列をより効率的に再配置するには、拡張されたクエリ エディターを使用できます。クエリの強化

mysqlの挿入無視、挿入、置換の違いは何ですか mysqlの挿入無視、挿入、置換の違いは何ですか May 29, 2023 pm 04:40 PM

insertignore、insert、replace 命令がすでに存在するかどうかの違い 挿入エラーの例 Insertintonames(name,age)values("Xiao Ming", 23); insertignore は insertignoreintonames(name, age)values("Xiao Ming", 24); replace 置換して挿入 replaceintonames(name,age)values("Xiao Ming", 25); テーブル要件: PrimaryKey、または一意のインデックス結果: テーブル ID は自動的にインクリメントされます。テスト コードはテーブルを作成します。

React Query データベース プラグイン: データをインポートおよびエクスポートする方法 React Query データベース プラグイン: データをインポートおよびエクスポートする方法 Sep 26, 2023 pm 05:37 PM

ReactQuery データベース プラグイン: データのインポートとエクスポートを実装するためのメソッド、特定のコード サンプルが必要 フロントエンド開発で ReactQuery が広く適用されるようになり、ますます多くの開発者がデータ管理に ReactQuery を使用し始めています。実際の開発では、多くの場合、データをローカル ファイルにエクスポートしたり、ローカル ファイルからデータベースにデータをインポートしたりする必要があります。これらの機能をより便利に実装するには、ReactQuery データベース プラグインを使用できます。 ReactQuery データベース プラグインは一連のメソッドを提供します

黒神話:悟空 が、発売からわずか数時間で 220 万人の Steam プレイヤーを擁する競争を打ち破る 黒神話:悟空 が、発売からわずか数時間で 220 万人の Steam プレイヤーを擁する競争を打ち破る Aug 21, 2024 am 10:25 AM

Black Myth: Wukong に対する誇大宣伝は、ゲームが発売日に向けてゆっくりと進んでいくにつれて世界中で感じられ、8 月 20 日の発売でも期待を裏切りませんでした。ゲーム コミュニティ全体から非常に温かい歓迎を受けました。オンになってから

JavaのStringBuilder.insert()関数を使用して、指定された位置に文字列を挿入します。 JavaのStringBuilder.insert()関数を使用して、指定された位置に文字列を挿入します。 Jul 24, 2023 pm 09:37 PM

指定した位置に文字列を挿入するには、Java の StringBuilder.insert() 関数を使用します。StringBuilder は、可変文字列を処理するために使用される Java のクラスです。文字列を操作するためのさまざまなメソッドが提供されます。insert() 関数は、文字列を次の位置に挿入するために使用されます。指定された位置. 文字列を位置的に挿入する一般的な方法の 1 つ。この記事では、insert()関数を使用して指定した位置に文字列を挿入する方法と、対応するコード例を紹介します。入れる()

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

jQueryでテーブル行を追加、編集、削除するにはどうすればよいですか? jQueryでテーブル行を追加、編集、削除するにはどうすればよいですか? Sep 05, 2023 pm 09:49 PM

今日の Web 開発時代では、特にデータ量の多い Web アプリケーションを扱う場合、効果的かつ効率的なテーブル管理が非常に重要になっています。テーブルの行を動的に追加、編集、削除できる機能により、ユーザー エクスペリエンスが大幅に向上し、アプリケーションがよりインタラクティブになります。これを達成する効果的な方法は、jQuery の機能を活用することです。 jQuery は、開発者が操作を実行するのに役立つ多くの機能を提供します。テーブルの行 テーブルの行は、相互に関連するデータのコレクションであり、HTML の要素で表されます。これは、テーブル内のセル (要素で表される) をグループ化するために使用されます。各要素はテーブル内の行を定義するために使用され、複数属性テーブルの場合、通常は 1 つ以上の要素が含まれます。構文$(セレクター).append(co

Power Query を使用してデータを NTFS に分割する方法 Power Query を使用してデータを NTFS に分割する方法 Mar 15, 2024 am 11:00 AM

この記事では、PowerQuery を使用してデータを行に分割する方法を紹介します。他のシステムまたはソースからデータをエクスポートする場合、複数の値を組み合わせたセルにデータが格納される状況がよく発生します。 PowerQuery を使用すると、そのようなデータを行に簡単に分割できるため、データの処理と分析が容易になります。これは、ユーザーが Excel のルールを理解しておらず、誤って複数のデータをセルに入力した場合、または他のソースからデータをコピー/ペーストするときにデータの書式が正しく設定されていない場合に発生する可能性があります。このデータを処理するには、分析またはレポート用の情報を抽出して整理するための追加の手順が必要です。 PowerQuery でデータを分割するにはどうすればよいですか? PowerQuery 変換は、単語などのさまざまな要素に基づいて行うことができます。

See all articles