1

我正在尝试制作一个用户在一个屏幕上输入详细信息的网站,并将它们发布到以下脚本中。该脚本旨在将这些详细信息与唯一的整数 ID(它确实如此)一起存储在数据库中,然后生成两个包含刚刚创建的记录的唯一 ID 的链接。由于数据库创建了 ID 而不是之前的页面,我尝试在数据库中查询最近的记录(即具有最高唯一 ID 值的记录)并在链接中使用该数字,但是使用当前脚本ID 似乎没有显示在页面中。它是变量类型的东西吗?有没有更简单的方法来获取刚刚创建的页面的 ID?这是代码:

$css = $_POST['css'];
$shopName = strip_tags($_POST['title']);
$email = $_POST['email'];

$con = mysql_connect("***","***","***");
if (!$con)
{
    die('Could not connect to database: '. mysql_error());
}

mysql_select_db("***", $con);

$sql = "INSERT INTO wps_Shops (shopName, shopEmail, shopStyle)
    VALUES ('$shopName', '$email', '$css')";

$quer = mysql_query($sql);

$result = mysql_query("SELECT *
                    FROM wps_Shops
                    ORDER BY shopId DESC
                    LIMIT 1");

$lastShop = mysql_fetch_array($result);

$id = strval($lastShop['id']);

echo ("Id: ".$id);

if ($quer)
{
    echo("<h1>Shop created</h1>");
    echo("<p><a href=\"shop.php?id=$id\">Go to shop</a></p>");
    echo("<p><a href=\"addproducts.php?id=$id\">Add products</a></p>");
}

mysql_close($con);
4

4 回答 4

2

你需要mysql_insert_id.

于 2009-04-12T14:12:09.067 回答
2

在执行mysql_query()插入操作后,您可以使用mysql_insert_id()来获取插入行的 ID。

mysql_query("INSERT INTO........");
$id=mysql_insert_id();

于 2009-04-12T14:12:36.913 回答
1

它叫“id”还是“shopId”?但你应该使用: http: //php.net/mysql_insert_id

于 2009-04-12T14:12:23.327 回答
1

或者,您可以进行以下 MySQL 查询:

$query = "SELECT * FROM wps_Shops WHERE id=LAST_INSERT_ID()";
$result = mysql_query($query);

虽然我对你为什么使用ORDER BY shopId感到困惑,但在后面的电话中:

$id = strval($lastShop['id']);

另外,真的有必要进行strval()调用吗?当您调用echo()时,PHP 已经为您进行了类型转换。而且,目前,从mysql_query()mysqli_query()返回的任何结果数据都以字符串格式返回,而不管 MySQL 中该列的数据类型如何。

于 2009-04-12T14:18:32.063 回答