我想知道,我的A_I
表格中只分配了MySQL
方法的值。我不能通过指定其他值来查找它,因为它们中至少有两个可能是相同的。我真的被卡住了。
假设我使用这个简单的代码INSERT
新的VALUES
:
INSERT INTO my_table (`Auto_Incremented_Value`, `My_Column`) VALUES (NULL, '$my_value');
现在我需要知道Auto_Incremented_Value
列的最后一个值是什么,因为我必须使用这个值才能将它作为该对象的链接分配给另一个表。
实际上,我允许一些人在我的服务器和图像上传图像。这些与他们所属的某些产品有关。我有两个表来处理这个。第一个(products
表)使用AUTO_INCREMENT
&第二个(images
表)没有,因为我存储了上传图像的完整路径,小描述&链接到指定的产品。我需要将Auto_Incremented_Value
存储为images
表中的链接。
P.S。如果我能用PHP解决它,我会很高兴。
谢谢!
答案 0 :(得分:3)
您应该使用MySQLI Insert ID。
$query = "INSERT INTO my_table (`Auto_Incremented_Value`, `My_Column`) VALUES (NULL, '$my_value')";
$mysqli->query($query);
printf ("New Record has id %d.\n", $mysqli->insert_id);
答案 1 :(得分:1)
如果您使用mysqli
,则可以在执行查询后立即使用mysqli_insert_id()
检索自动递增的值:
$result = mysqli_query($link, "Insert into someTable values (null, 'a','b','c')") or die(mysqli_error($link));
$last_id = mysqli_insert_id($link);
对于PDO,您可以执行类似操作并使用PDO :: lastInsertId来检索值。
答案 2 :(得分:1)
如果你正在使用PDO,你可以得到这样的新值:
$nextAIValue = $pdo->lastInsertId();
如果您正在使用mySQLi,请使用:
$nextAIValue = mysqli_insert_id();
如果您使用普通的mysql_*
函数(虽然已弃用),请获取如下值:
$nextAIValue = mysql_insert_id();