0

私は単純なcmsを構築しており、ユーザーがサインアップしたときにデータベースに追加のコンテンツを自動的に作成しようとしています。コードは最初の挿入行で問題なく機能しましたが、2番目の挿入行を追加すると、機能しなくなりました。StackOverflowからこのコード構造を取得し、他のサイトを調べたところ、正しいようですが、私の人生では何が悪いのか理解できません。助言がありますか?

$registerquery = mysql_query("BEGIN
INSERT INTO users (Username, Password, EmailAddress) 
VALUES ('".$username."', '".$password."', '".$email."')
INSERT INTO pages (page_title, page_owner) 
VALUES ('My New Page', LAST_INSERT_ID())
COMMIT");
4

1 に答える 1

3

PHPのMySQLドライバーを使用して1回のquery()呼び出しで2つのクエリを発行することはできません。これは、特定の形式のSQLインジェクション攻撃に対するセキュリティ対策です。これは、コードが脆弱です(mysql_real_escape_string()などを以前に実行している場合を除く)。

;また、2つのクエリを分離するためのaがありません。

マルチクエリ構文は

query1; query2; query3; etc...

あなたは基本的に持っています

query1 query2

これは単に構文エラーです。

于 2012-07-17T18:01:12.683 に答える