• 締切済み

phpの処理で2度書き

1つのphpファイルでfacebookのAPIなど重い処理をしたあとにDBに書き込む処理があります。 APIなどの重い処理をしあに場合は通常は思惑通りに書き込みできるのですが、APIの処理の後だと2度insertしてしまいます。 何か原因は考えられますでしょうか?

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

利用者が応答ないからクリックミスだと思って、二重でsubmitしているとか。 その場合、javascriptで二重submitの禁止処理を 入れてみてはどうでしょう。

関連するQ&A

  • PHPのPostgresql インサート処理

    PHPである携帯用アプリを作成しています。 ユーザ登録処理画面でパソコン上からDBにインサートすると成功するのに携帯からだとDBエラーになります。 インサートする項目は10項目あります。 エラー文は以下です。 Warning: pg_exec(): Query failed: ERROR: parser: parse error at ornear "," at character27 . in /~path名(セキュリティ上書きません) 他の処理でインサート項目が1つだとインサートが成功します。 原因がどうしてもわかりません。 Postgresqlの規約があるのでしょうか?それとも携帯での規約でしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP+MySQLでの排他処理とDBクローズ

    <環境> Apache1.3.37 PHP4.4.6 MySQL4.0.27 PHPで、掲示板などのスクリプト作成を勉強しています。 これまで、ログをログファイルとして保存するように作成しておりましたが、データベースに保存するように変更している途中です。 そこで、教えていただきたいのは下記の2点です。 ・ロック処理の必要性 →ログファイルを作成するタイプの場合、同時アクセスによるファイル破損を防ぐため、ロック処理が必要でした。DBに変更した場合も同様に必要なのでしょうか? ・DBのクローズ処理 →最小限のソースを以下に記します。9行目のクローズ処理は必ず必要でしょうか?また、エラーが発生した場合、7行目で処理が終わるのですが、この直前にもクローズ処理を記入する必要があるのでしょうか? 1)<?php 2)$db = mysql_connect(host,user,pass); 3)mysql_select_db(db-name,$db); 4)$query = "INSERT INTO table(id,name) VALUES('1','なまえ')"; 5)if (!(mysql_query($query))) { 6) print = "書き込みに失敗しました。"; 7) exit(); 8)} 9)mysql_close($db); 10)?> 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPの設定 エラー処理について

    当方PHPの初心者です。 現在HTML上でPHPの動作をさせているのですが 一部の処理で【Fatal error: Call to undefined function】というエラーがでて処理が途中で止まってしまいます。 エラー文自体は正しく、元々テスト環境でPHPを動作させているので、本番のDBや該当ファイルが無い為にエラーとなっています。 ただ、ステージングという扱いにしてソースをそのままでアップさせたいので、エラーが必ず出る箇所を無視して先に進めたいと考えています。 エラーが起こる部分をコメントアウトする事は二度手間になり、本番化の場合にヒューマンエラーが発生するのを防ぐ為です。 そこでご相談なのですが、PHP処理の時に該当ファイルが無い等のエラーを無視してそのまま続行する。 方法はありますでしょうか。 通常の処理は動作確認済みです。 <?php echo date('Y年m月d日'); ?>等 エラーが発生するのは下記のような場合です。 <?php e($this->renderElement("サーバーが違うので存在しない")); ?> 色々情報を探ったのですが中々解決策をつかめず・・ どなたかお力添えを頂ければありがたいです。

    • 締切済み
    • PHP
  • MySQLでもPHPでも出来る処理はどっちでやる?

    「MySQL」「PHP」、何れでも出来るような処理はどちらでやる方が良いのでしょうか? ■例1 … 取得データを正規表現で加工して利用したい場合 ・SQL重視 … 正規表現等を駆使したSQLで、後々利用しやすい形で取得 ・PHP重視 … 普通に取得して、PHPで正規表現を利用して加工 ■例2 … データ取得がヤヤコシイ場合 ・SQL重視 … (例えそれがどんなに長くなっても)SQL文をキチンと組み立て、一度にデータ取得 ・PHP重視 … 簡単なSQL文で一旦データ取得後、PHPのループ文内等処理で、再度DBアクセスしデータ取得 ・ちょっと例えが微妙かもしれないのですが、そもそもデータ取得する際、どのように考えるのが正しいのでしょうか? 1.なるべく利用予定に近い形でデータを取得 2.後で色々加工するかもしれないので、取得時点ではあまり加工せず、そのまま取得 ※要は、頻繁にDBへアクセスしてデータ取得するより、「DBへアクセスするのは極力避け、取得したデータはなるべく使い回す」方が良いのでしょうか? ・それとも、ここら辺はケースbyケースなので、一概には言えないのでしょうか? ・あるいは、別にどっちでもいい? あまり、気にしなくても良い?

    • ベストアンサー
    • MySQL
  • php の処理をした結果をカウントアップさせたい

    php と mysqlで作ろうと考えてます。 ・内容 php の処理をした結果 同じ名前があった場合 その名前をカウントアップさせたいです。 DBのテーブル name|counter 田中|1 佐藤|2 鈴木|5 phpの処理をした結果 「田中」 が重複していたい場合のDBの結果内容 name|counter 田中|2 佐藤|2 鈴木|5 参考サイトがございましたらアドバイスいただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 同じPHPの処理を必ず通るようにしたい

    お手上げ状態となってしまったので質問させてもらいました。。 行いたいことは、あるサイトのドキュメントルート下のどのファイル(html,php)がリクエストされた場合でも必ず /hoge.php という phpを通り、フィルタ的な処理が行えるようにしたいという事です。(しかも、CGIとしてではなくモジュールとして) .htaccess でphp_value auto_prepend_file などを使用すればいけそうだというところまでは辿り着いたのですが、問題が二つあり、 ・できればだが、クライアントに出力結果が送出される直前に処理をしたい ・上記設定が制限されているケースがあるかが心配 というものです。 つまり、これ以外に今回やりたいことを満たす方法はないかどうかを知りたいのです。 apache php に詳しい人がいたら是非教えてください! よろしくお願いします! ちなみに環境は様々なWEBサーバのデフォルト環境で動作するようにしたいです。サーバの設定を変更したり、httpd.conf を触ったり、 何かをインストールする必要があったりは無理です・・。(apache以外は考慮する必要はありません)

    • ベストアンサー
    • PHP
  • PHPとMySQL、INSERTの動作についての少し疑問点。

    PHPとMySQL、INSERTの動作についての少し疑問点。 現在、PHPとMySQLを使ってHPを作成しています。 会員登録のページが存在し、会員情報をDBに書き込む時にINSERT文を使用しているのですが この動作を複数の人が同時に行った場合、どうなるのでしょうか? DB・PHP・MySQL的にエラーが出るのであれば 『書き込み処理中は時間差で実行する』等の 何か回避策をしなければならないのですが・・・。 その辺りが少し疑問に思ったのでお伺いしたく思います。 初歩的な質問になりますがお教え頂ければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • PHPの書き方について

    メニュー用のPHPと 処理用のPHPに分けて作成しようと考えています。 メニュー用のボタンをクリックすると 処理用のPHPが実行される仕組みです。 この事について幾つか質問させて頂きます。 1.通常、このように分けて作るのでしょうか? 2.分けて作る場合は、どのようにして   メニュー用のPHPから処理用のPHPを呼び出すのでしょうか? 3.分けずに作る場合は   どのようにプログラムを書けば   見やすくなるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • エラー処理の方法と書き方

    csvファイルのデータをOracle 9i Databaseに格納する次のようなプログラムを作成しました。 開始 | ファイルのOPEN | DBへの接続 | 文字列から空白値の削除 | 繰り返しループ UNTIL:EOF | csvファイル中の顧客 コードがOracleテーブル 内に存在するか Yes----update No--------insert | 繰り返しループ終了 | ファイルのCLOSE | 終了 一応プログラムは正常に動作しているのを確認しました。あとはエラー処理を書いて完了だと考えています。プログラムを書いたのが初めてだったので、普通のエラー処理がどんなもんなのかちょっと想像がつかない状態です。 1.このプログラムにできるだけたくさんのケースを考えてエラー処理を書き込みたいのですが、どのようなエラーが考えられるでしょうか。 一応自分的に考えて見たのが、 (1)「開始」の前にcsvファイルがなかった場合 (2)「DB接続」の前にDB接続ができなかった場合 (3)「繰り返しループ」の前にファイルの中身が空だった場合 (4)「insert」「update」の後にSQL文の発行が全て正常に完了しなかった場合 普通はこれがいるとか、こんなのいらないとかありましたら教えてください。 2.エラーが発生した場合は、運用者にそれを伝えるために普通はコンソール上に表示させるのですか?もしそうだとしたらどのような形でそれを実現するのですか? MsgBox?メール?他には? よろしくお願いします。

  • 他のPHPで計算して出した値をPHP内で実行したい

    http://hoge.jp/data.php?id=7203をクーロンで叩くと、 その時間の株価情報を拾ってきて、WEB上に「7203,トヨタ,3080」 と表示される仕組みを作りました。(株価番号,社名,株価) この結果をmySQLのテーブルに継続的にインサートすることを考えました。 私が考えた方法は下記の通りなのですが、<?php ?> の中に<?php ?>が 含まれる形になるためか下記の方法ではインサートできません。 どのようにすればインサート出来るかご教授頂けませんでしょうか? 尚、「7203」「トヨタ」「3080」を別々に取得することはできず 「7203,トヨタ,3080」のようにまとまった形でしか取得できません。 宜しくお願い致します。 <?php $con = mysql_connect("localhost","root","password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("db", $con); mysql_query(" INSERT INTO table (id,company,stock_price) values (<?php echo file_get_contents('http://hoge.jp/data.php?id=7203'); ?>) "); $close_flag = mysql_close($con); ?>

    • ベストアンサー
    • MySQL