我有点问题,很抱歉打扰你,但我找了很多,找不到一个好的答案。当用户在我的页面上提交时,数据会进入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。
问题是您混合了mysql
和mysqli
语法。
您应该将代码中的mysql_insert_id()
替换为mysqli_insert_id($con)
。
现在你应该有正确的计数了。
除此之外,您还有一个sql注入问题。您应该切换到带有绑定变量的准备语句,而不是直接在查询中注入$_POST
变量。
查看mysql_insert_id或mysqli_insert_id(用于PHP的最新版本)。
例如。echo mysql_insert_id()
mysql_insert_id()
mysqli_insert_id()
将返回插入的最后一行的主键。