PHPで準備済みの文を使用してMySQLi Transactionを作成します。私はすべての罰金を持っているようだが、問題がある。私のステートメントはお互いに依存しています。例:PHP MySQLi Prepared Statementトランザクション挿入ID
電子メールアドレスを電子メールテーブルに入力します。
//$email_sql
if(!($stmt = $mysqli->prepare($email_sql))) throw new \Exception("[mysqli] Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);
if(!($stmt->bind_param('s', $email)) throw new \Exception("[mysqli] Bind Params failed: (" . $mysqli->errno . ") " . $mysqli->error);
//$user_sql
if(!($stmt = $mysqli->prepare($user_sql))) throw new \Exception("[mysqli] Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);
if(!($stmt->bind_param('i', $SHOULD_BE_EMAIL_ID)) throw new \Exception("[mysqli] Bind Params failed: (" . $mysqli->errno . ") " . $mysqli->error);
することができます:外部キー
は2つのプリペアドステートメント、電子メールIDの最初に頼る秒を示しており、以下のコードを参照してくださいよう ユーザーは、メールアドレスのIDを持つユーザテーブルに入力しました私が '$ SHOULD_BE_EMAIL_ID'をどこに置いているかを見てください。そこに問題があります。私が見てきたように、コードのこの時点で最初のクエリがまだ実行されていないので、この値を取得する方法はありません。私にこれを回す方法はありますか?私。そこに電子メールIDを取得できるようにする機能はありますか?私が見る限り、私はそれを見つけることができませんでした。
私は現時点で解決策を考えることができる唯一の方法は、自分のコードのロジックを変更しているので、トランザクションを利用しています。
ご協力いただきありがとうございます。
最後に挿入された要素のAUTOINC IDを取得できます:http://php.net/manual/en/mysqli.insert-id.php –