1

完全に機能するものを見つけましたが、見栄えが悪い 1 つのクエリでこれを行うことは可能ですか?

    $query = "INSERT INTO page(page_name, page_weight)
              VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')";
    $result = mysql_query($query);

    $query2 = "SELECT page_id FROM page WHERE page_id = (SELECT MAX(page_id)  FROM page)";
    $result2 = mysql_query($query2);
    while($row = mysql_fetch_assoc($result2))
    {
        $query3 = "INSERT INTO content(page_id, content_type)
                   VALUES('".$row['page_id']."', '".mysql_real_escape_string($_POST['type'])."')";
        $result3 = mysql_query($query3);
    }

ページからの page_id は自動インクリメントされますが、コンテンツからの page_id はそうではありません。何らかの方法でそれらをリンクすることは可能ですか?

編集:

PLBに感謝します。代わりにこれを手に入れました

    $query = "INSERT INTO page(page_name, page_weight)
                VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')";
    $result = mysql_query($query);

    $query3 = "INSERT INTO content(page_id, content_type)
                VALUES('".mysql_insert_id()."', '".mysql_real_escape_string($_POST['type'])."')";
    $result3 = mysql_query($query3);

しかし、1つのクエリを作成することは可能ですか?

4

1 に答える 1

0

mysql_insert_id();最後に挿入された ID を返します。それを使用すると、次のように選択クエリを削除できます。

    $query = "INSERT INTO page(page_name, page_weight)
                VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')";
    $result = mysql_query($query);

        $query3 = "INSERT INTO content(page_id, content_type)
                    VALUES('".mysql_insert_id()."', '".mysql_real_escape_string($_POST['type'])."')";
        $result3 = mysql_query($query3);

mysql_*ただし、関数の使用をやめて、mysqli_*または試してみることをお勧めしますPDO

于 2012-05-28T13:27:11.673 に答える