以前はトランザクションを使用したことはありませんが、私は自分のHTMLフォームを介してデータベースにデータを書き込むときに問題が発生した場合にロールバックが行われるようにしたいと考えています。MySQLトランザクション - BEGIN問題
素晴らしいですが、私はMySQLクエリでそれらの場所と使い方を完全に理解するのに苦労しています。
$sql = "BEGIN
/* Insert the user to the WordPress Database */
INSERT INTO wp_users (user_login, user_pass, user_email)
VALUES ('John', 'Doe', '[email protected]');
/* Insert the user into our Custom Database */
INSERT INTO users (ID, name)
VALUES (LAST_INSERT_ID(), 'John')
COMMIT";
私は読みやすいようにコードの一部を編集した、と私は知っている、たとえばパスワードは安全ではありませんが、私はBEGIN &で何か間違ったことをやっているが、トランザクションのための機能をCOMMIT?
私はLAST_INSERT_ID()関数を最大限に活用できるようにトランザクションも使用しようとしています。これにより、両方のデータベース間で確実に同一のIDを共有できるようになり、さまざまなWebアプリケーションの理由で固有のデータを簡単に呼び出すことができます。
私はいくつかのものをオンラインで見つけましたが、実際には簡単に理解できる例はありません。私は間違って何をしているのですか?私の実装はひどいのですか?何か不足していますか? LAST_INSERT_ID()はそのように動作しますか?
ご提供いただけるお役に立てれば幸いです。ありがとうございました。
1) MySQLiは万が一DBに接続するのですか? 2)どのようなエラーメッセージが表示されますか? – BeetleJuice
は、http://stackoverflow.com/questions/9974325/mysql-transaction-within-a-stored-procedureを見てください - これはロールバックの良い使い方を示しています – RamRaider
はい、私はMySQLiを使用しています - システムは正常に動作します1つだけを1つのテーブルに挿入しますが、トランザクションの実装時には失敗します。 ありがとうRamRaider - 私は見てみましょう。私は、私が単に適切な場所などでコマンドを取得したかどうかについてほとんど心配しています。 –