好吧,所以我有两张桌子,我正在使用。
首先设置类似这些表的内容
Destination
IDDestination Name IDCity IDState
1 Scottsdale 3 4
2 Miami 5 7
和
Destinations_Citites
IDDestinationCity IDDestination IDCity
1 1 3
2 2 5
现在,通过我的插件,我添加了一个新的目标按钮,添加了一个新目标,其中Name
,IDCity
和IDState
由用户填写,{{1} }是自动生成的。
所以我想弄清楚如何做到就是抓住自动生成的IDDestination
#并将其输入IDDestination
表而不让用户做任何其他事情。
基本上我如何插入刚刚创建的自动生成的Destinations_Cities
并将其扔到我的另一个表中,而无需用户自己添加它。
以下是我用于添加目标按钮
的插入和更新的代码IDDEstination
答案 0 :(得分:2)
您可以获得会话期间生成的最新自动增量ID:
$dest_id = mysql_insert_id();
请参阅文档:http://php.net/manual/en/function.mysql-insert-id.php
不完全是关于你的问题,但我回应上面的评论,你应该保护你的查询免受SQL注入漏洞。除非确保变量安全,否则不要将PHP变量复制到SQL字符串中。
(int)
将其强制转换为整数。此外,如果您只是将简单变量放在PHP字符串中,则无需执行所有.
连接。 SQL中没有必要在整数文字周围加上引号。
以下是一个例子:
if(isset($_POST['Add_Destination'])) {
$idstate = (int) $_POST['idstate1'];
$idcity = (int) $_POST['idcity'];
$name = mysql_real_escape_string($_POST['addname']);
$SQL="INSERT INTO destination (name, IDCity, IDState)
VALUES ('$name', $idcity, $idstate)";
$dest_id = mysql_insert_id();
$SQL1="UPDATE city SET is_active='1' WHERE IDCity='$idcity'";
. . .
如果将代码转换为使用PDO,则可以使用SQL查询参数,在这种情况下,您无需担心转义等问题。