题
我正在尝试制作一个网站,其中用户在一个屏幕上输入详细信息,并将其发布到以下脚本上。该脚本旨在将这些详细信息与唯一的整数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中如何。
不隶属于 StackOverflow