0

customerフォームと、phone_number、およびjunction(多対多の関係を作成するため) の3 つのテーブルがあります。

テーブルのand列に入力するために、 customerandテーブルから新しく作成された自動インクリメント ID を使用して、3 つのテーブルすべてにデータを入力するフォームが必要です。phone numbercustomer_idphone_idjunction

customer新しく作成された ID をテーブルからテーブルに挿入する次のコードを思いつきましたjunctionが、電話番号を取得して同じことを行う方法がわかりません。

$query = "INSERT INTO customer (first_name, last_name) VALUES (%s, %s)",
GetSQLValueString($_POST['first_name'], "text"),
GetSQLValueString($_POST['last_name'], "text"));
$result = mysql_query();
$insertID = mysql_insert_id();

$query = "INSERT INTO junction (customer_id) VALUES ($insertID)";
mysql_select_db($database_hh, $hh);
$result = mysql_query($query, $hh) or die(mysql_error());
4

1 に答える 1

1

ここに疑似コードがあります:

//Insert a customer
$query = "INSERT INTO `customer` ..."
...
//Get the newly inserted customer's ID
$customer_id = mysqli_insert_id();

//Insert a phone
$query = "INSERT INTO `phone` ..."
...
//Get the newly inserted phone's ID
$phone_id = mysqli_insert_id();
...
//Insert them in the junction table
$query = "INSERT INTO `junction` (customer_id, phone_id) VALUES ($customer_id, $phone_id)"

ここで使用してmysql_*いるのは、StackOveflow でよく見かけるコメントです。

新しいコードに mysql_* 関数を使用しないでください。それらはもはや保守されておらず、コミュニティは非推奨プロセスを開始しています。赤いボックスが見えますか? 代わりに、準備済みステートメントについて学び、 PDOまたはMySQLiのいずれかを使用する必要があります。決められない場合は、この記事を参考にしてください。学習したい場合は、ここに良い PDO チュートリアルがあります。

于 2013-01-09T05:54:58.940 に答える