トップページ > プログラム > 2016年01月25日 > 8/faLYqO

書き込み順位&時間帯一覧

7 位/146 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000011110000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net

書き込みレス一覧

【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
561 :デフォルトの名無しさん[]:2016/01/25(月) 14:10:14.53 ID:8/faLYqO
初めまして
くだらない質問で申し訳ないのですが、以下をご教授願います。
【OS名】FreeBSD 9.1-RELEASE-p24 amd64
【PHPのバージョン】PHP 5.4.45 (cgi-fcgi)
【連携ソフトウェア】MySQL,phpmyadminで管理
【質問内容】
以下のコードを実行時にデータが3回INSERTされてしまいます。
また、INSERTされた内容にはpasswordの値がNULLではないが空で入ってしまいます。
INSERTを一回だけにするためにはどこを変更したらいいでしょうか。
また、DBにINSERTされるデータが空になってしまうのはなぜでしょうか。
動作の流れとしては、別のページでPOSTされたデータを読み込んで、
prepareを作りbindしてexecuteするという流れです。
//トランザクション開始
mysqli_query($link,"begin") or die('トランザクション開始に失敗しました');
/*prepared statment の格納*/
$sql = "insert into members(userid, password, name, email) values (?, ?, ?, ?)";
/*プリペアを作る*/
$stmt = mysqli_prepare($link, $sql) or die ('プリペア送信に失敗しました。SQL:' . $sql);
echo mysqli_error($link);
//パラメータの送信
mysqli_stmt_bind_param($stmt,'ssss', $input_userid, $input_password, $input_name, $input_email) or die ('パラメータ送信に失敗しました。:' . $stmt);
echo mysqli_error($link);
//sql実行
mysqli_stmt_execute($stmt) or die('クエリ実行に失敗しました');
$result = mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
if ($result) {
mysqli_query($link, "commit");
mysqli_close($link);
}
以上よろしくお願いいたします
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
563 :デフォルトの名無しさん[]:2016/01/25(月) 15:52:26.43 ID:8/faLYqO
>>562
ありがとうございます!
早速そこ消してみたところ、一回になりました。
3回出てたのは結局原因不明でした。(もしかしたら勘違いかもしれません)

$input_password
の中身はここに入る前のphpファイルで確認ページとして表示させているので入っていると思われます。
表示させて、そのままhidden属性付けて再度今回のファイルにPOSTしています。

参考URLまでありがとうございます。
早速確認します!
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
565 :デフォルトの名無しさん[]:2016/01/25(月) 16:27:29.75 ID:8/faLYqO
>>564
そうですよね。
nameにpassword属性が入っていたら仕様上そうなるのでは何て勘ぐってました。
確認し直します!
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
566 :デフォルトの名無しさん[]:2016/01/25(月) 17:13:43.36 ID:8/faLYqO
>>564
お陰様で解決しました。
name=となるところが別のものになっておりました。
先ほどお教えいただいたトランザクションの件なのですが、
さくらのレンサバを使っているためMysqlのverが5.5のみでmysqliのトランザクション処理がかけられませんでした。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。