MySQLでINSERTを実行した際に3回実行される
ここに質問の内容を詳しく書いてください。
PHPで簡単な入力フォームを作成しています。
DBに接続後、SQLを実行中に以下の問題が発生しました。
該当のソースコード (PHP)
<pre> <?php try { $db = new PDO('mysql:dbname={name};host={host};port=8889;charset=utf8', '{user}', '{pass}'); $db->exec('INSERT INTO {table_name} SET {A}="' . $_POST['{a}'] . '", created_at=NOW()'); } catch (PDOException $e) { echo 'DB接続エラー:' . $e->getMessage(); } ?> </pre>
試したこと
実行ブラウザを変更して試したところ、chromeではこのような現象は起きず、
safariで問題が起こっております。
ブラウザによる問題かと思っておりますが、こういった場合の解決方法がわかりません。
補足情報
MAMP PHP ver.7.3.1
追記
補足情報として、フォームとCREATE TABLEのソースを載せました。
■フォーム <form action="test.php" method="post"> <textarea name="{a}" cols="50" rows="10"></textarea><br> <button type="submit">登録する</button> </form> ■CREATE TABLE create table {table_name} (id int, {A} text, create_at datetime);
ご提示の情報だけでは再現確認ができません。
{a}をPOSTしているフォームの情報も含めてご提示ください。
また「3回実行される」というのは「3行データが挿入された」という意味で良いですか?なるべく具体的に起きた現象を記載してもらえたらと。
あと、テーブル定義(CREATE TABLE文)もご提示ください。
下記のような感じです。
■フォーム
<form action="test.php" method="post">
<textarea name="{a}" cols="50" rows="10"></textarea><br>
<button type="submit">登録する</button>
</form>
■CREATE TABLE
create table {table_name} (id int, {A} text, create_at datetime);
ご認識の通り、「3行データが挿入された」という意味で、内2件は{A}が空の状態で登録されます。
datetimeはそれぞれ2〜10秒程度の間があります。
情報に色々と不備があって申し訳ないのですが、よろしくお願いいたします。
質問本文に追記してください。
そしてなぜ波カッコで命名しているのでしょうか?
ありがとうございます。
波カッコの部分は任意の値でしたのでわかりやすくするためにカッコつけてました。
逆にわかりにくかったですね。すみません。
回答1件
あなたの回答
tips
プレビュー