【问题标题】:after submit, echo mysql id of user提交后,回显用户的mysql id
【发布时间】:2013-07-01 01:19:31
【问题描述】:

我有一点问题,很抱歉打扰你,但我看了很多,找不到好的答案。当用户在我的页面上提交数据时,数据会发送到我的 mysql 服务器并被存储,mysql 会给它一个 auto_increment id。当用户提交时,我希望 mysql 分配给他们提交的 id 被回显。有人可以帮忙吗?

这是我的代码:

<?php $con=mysqli_connect('host','username','pass','db');
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO subusers (username, date, ip)
VALUES
('$_POST[username]','$_POST[date]','$_POST[ip]')";
if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added", mysql_insert_id();
mysqli_close($con);
?>

这就是将数据发送到服务器的代码,当它发送并从服务器获取 id 时,我希望它回显 id。

【问题讨论】:

  • 尝试使用mysqli-&gt;insert_id。这可能与此重复:stackoverflow.com/questions/1929504/…
  • 你能解释一下如何/在哪里把它放在我的代码中吗?对不起,我有点菜鸟:/

标签: php mysql submit echo auto-increment


【解决方案1】:

问题是您混合了mysqlmysqli 语法。

您应该将代码中的mysql_insert_id() 替换为mysqli_insert_id($con)

现在你应该有正确的计数了。

除此之外,您还有一个 sql 注入问题。您应该切换到带有绑定变量的预处理语句,而不是直接在查询中注入 $_POST 变量。

【讨论】:

  • 它不起作用。当我测试它说:警告:mysqli_insert_id() 只需要 1 个参数,给定 0
  • @user2356634 查看手册链接;您需要像在其他任何地方一样添加$con 作为参数。
  • 谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢多谢
【解决方案2】:

查看mysql_insert_idmysqli_insert_id(获取最新版本的 PHP)。

例如。 echo mysql_insert_id()

【讨论】:

  • 你能解释一下如何/在哪里把它放在我的代码中吗?对不起,我有点菜鸟:/
【解决方案3】:

php函数

mysql_insert_id()
mysqli_insert_id()

将返回插入的最后一行的主键。

【讨论】:

  • 你能解释一下如何/在哪里把它放在我的代码中吗?对不起,我有点菜鸟:/
  • 那已经存在了,因为 OP 正在使用 mysqli,所以它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2015-02-01
  • 1970-01-01
相关资源
最近更新 更多