我正在尝试建立一个用户在一个屏幕上输入详细信息的网站,然后将它们发布到以下脚本中。此脚本用于将这些详细信息与唯一的整数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);
答案 0 :(得分:2)
您需要mysql_insert_id
。
答案 1 :(得分:2)
在您为插入执行mysql_query()
之后,您可以使用mysql_insert_id()来获取插入行的ID。
mysql_query("INSERT INTO........");
$id=mysql_insert_id();
答案 2 :(得分:1)
是'id'还是'shopId'?但您应该使用:http://php.net/mysql_insert_id
答案 3 :(得分: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中该列的数据类型。