MySQL链接2 ids其中一个是auto_increment

时间:2012-05-28 13:13:45

标签: php sql insert

我发现一些效果很好但看起来很丑的东西 是否可以在一个查询中执行此操作?

    $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次查询?

1 个答案:

答案 0 :(得分: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