0

我试图在 slug 之后获取行 ID(例如 post 1 返回“/bligpost.php?id=1”)。相反,它不返回任何 ID。我在哪里做错了?(我在评论中包含了我的其他尝试。)

mysql_connect("$hosty","$uname","$paswd");
@mysql_select_db($dbnme) or die( "Unable to select database");

$name=$_POST['Title'];
$slug="blogpost.php?id=";
$auth=$_POST['Author'];
$date=$_POST['Date'];
$cont=$_POST['Content'];

//$query = ("INSERT INTO Blogs (Name, URL, Content, Author, Date) VALUES ('$name', '$slug', '$cont', '$auth', '$date')");
mysql_query("INSERT INTO Blogs (id, Name, URL, Content, Author, Date) VALUES (NULL, '$name', '$slug', '$cont', '$auth', '$date')");
//$pind = mysql_query("SELECT LAST_INSERT_ID()");
mysql_query("UPDATE Blogs SET URL=blogpost.php?id=`id` WHIERE id=LAST_INSERT_ID()");
//mysql_query("UPDATE Blogs SET URL=blogpost.php?id=".$pind." WHERE Content=".$cont);
mysql_close();
4

4 回答 4

1

试试 mysql_insert_id () 之类的

mysql_query("INSERT INTO Blogs (id, Name, URL, Content, Author, Date) VALUES (NULL, '$name', '$slug', '$cont', '$auth', '$date')");
$id =  mysql_insert_id();
echo "My Last Inserted Id ".$id;

Tr 这个LINK并且不要使用 mysql_* 函数,因为它们被贬低了,而不是它,使用 mysqli_* 或 PDO 语句

并尝试更新您的更新查询,例如

mysql_query("UPDATE Blogs SET URL = 'blogpost.php?id=$id' WHERE id=$id");

编辑根据您评论的查询尝试

mysql_query("UPDATE Blogs SET URL=blogpost.php?id=$pind WHERE Content='".$cont."'")

或者

mysql_query("UPDATE Blogs SET URL=blogpost.php?id=$pind WHERE Content='$cont'")
于 2013-06-07T07:05:56.230 回答
0

这个怎么样?

   $pind = mysql_insert_id();

http://php.net/manual/en/function.mysql-insert-id.php

于 2013-06-07T07:08:39.413 回答
0

$id = mysql_insert_id();

在表 id 字段应该是自动增量字段

于 2013-06-07T07:10:26.747 回答
0

在分配给时,您在注释行中实际上做错的$pind是您希望mysql_query返回您的新 id,但它实际返回的是您必须从中获取 id 的资源或来自家庭mysql_fetch_row的任何类似功能。mysql_fetch_

至于带有 的未注释行WHIERE id=LAST_INSERT_ID(),它可能会起作用,但您没有将前缀字符串与您的 id 连接起来。你应该这样做:

mysql_query("UPDATE blogs SET url = CONCAT('blogpost.php?id=', id) WHERE id = LAST_INSERT_ID()");

另一方面,当您已经在数据库中拥有所需的一切(即 id)时,我不赞成您将 url 保存在数据库中的设计,因此您应该在前面加上“blogpost.php?id=”选择该行时获得的 id 并且一切就绪,您的这个 url 是完全没有必要的。

哦,人们说这已被弃用时是正确的,但似乎你仍在学习,所以这可能比 mysqli 方法更容易掌握,所以你现在可以坚持使用它,一旦你可以升级到 mysqli舒服的。

希望有帮助。祝你好运。

于 2013-06-07T07:26:14.857 回答