我正在尝试制作一个网站,其中用户在一个屏幕上输入详细信息,并将其发布到以下脚本上。该脚本旨在将这些详细信息与唯一的整数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);
有帮助吗?

解决方案

在您做之后 mysql_query() 对于插入物,您可以使用 mysql_insert_id() 获取插入行的ID。

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

其他提示

你需要 mysql_insert_id.

它被称为“ ID”或“ ShopID”?但是您应该使用: http://php.net/mysql_insert_id

另外,您可以进行以下MySQL查询:

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

虽然我对你为什么使用的原因感到困惑 订购ShopID 但是在以后的电话中:

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

另外,真的有必要做到这一点 strval() 称呼? PHP打电话时已经为您进行了该类型转换 回声(). 。而且,目前,任何结果数据都从任何一个返回 mysql_query() 或者 mysqli_query(), ,以字符串格式返回,无论该列的数据类型在MySQL中如何。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top