2017-05-15 75 views
0

我已到处寻找,并不断得到不同的答案和不正确的代码。我想要做的就是在MySQL中为我的数据库添加一个字段后,获取刚刚创建的字段的user_id。我似乎无法做到这一点?获取mysql中最后一个插入行的标识

我用这个输入字段,并感谢您的任何帮助。它有一个auto_increment user_id的值,这是我需要得到的。

mysqli_query($con,"INSERT INTO users_accounts (business, email_uniq) 
VALUES ('$business', '$email_uniq')"); 
+2

使用预处理语句 – Akintunde007

+0

也许这:http://stackoverflow.com/questions/2770600/mysql-select-the-last-inserted-row-easiest-way – guergana

+0

取看看这里http://php.net/manual/en/mysqli.insert-id.php –

回答

1

使用这种插入查询后

$last_row = mysqli_insert_id($con); 
0

执行查询后,您可以使用mysqli :: $ insert_id值或mysqli_insert_id f油膏检索最后生成的ID,像这样:

mysqli_query($con,"INSERT INTO users_accounts (business, email_uniq) VALUES ('$business', '$email_uniq')"); 
$insert_id = mysqli_insert_id($con); 

或使用对象的功能:

$con->query("INSERT INTO users_accounts (business, email_uniq) VALUES ('$business', '$email_uniq')"); 
$insert_id = $con->insert_id; 

编辑:没有关系,但definitly重要! 如果这些参数$ business或$ email_uniq中的任何一个的值都是用户提供的,强烈建议确保它们已被正确过滤。最简单的方法是使用预先准备的安全声明(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。下面是使用预处理语句代码:

$stmt = $con->prepare("INSERT INTO users_accounts (business, email_uniq) VALUES (?,?)"); 
$stmt->bind_param("ss", $business, $email_uniq); 
$stmt->execute(); 
$insert_id = $con->insert_id; 
相关问题