Php 在将值插入/复制到其他文件时获取ID
是否可以获取MySQL数据库中的条目的ID? 或者更好地将ID的值复制到另一个字段中? 例如,我有:Php 在将值插入/复制到其他文件时获取ID,php,mysql,Php,Mysql,是否可以获取MySQL数据库中的条目的ID? 或者更好地将ID的值复制到另一个字段中? 例如,我有: ID和User\u ID我希望它们总是相同的值 -------------------- | ID User_ID | | 1 1 | | 2 2 | | 3 3 | | 4 4 | | 5 5 | -------------------- 等等在调用m
ID
和User\u ID
我希望它们总是相同的值
--------------------
| ID User_ID |
| 1 1 |
| 2 2 |
| 3 3 |
| 4 4 |
| 5 5 |
--------------------
等等在调用mysql\u查询后使用mysql\u insert\u id()
或者mysqli\u insert\u id()
正在使用mysqli\u而不仅仅是mysql_
更多信息请注意,所有的mysql\uuu
函数现在都贬值了,因此我建议改为使用mysqli\uu或PDO。我发现您的需求很有问题,而且有设计的味道。然而,你有机会实现你所追求的目标。该键是一个触发器
您可以在这里找到
基本上,您需要在INSERT触发器之后定义一个适当的
插入未设置用户id字段的行,读取触发器内的自动增量id,并根据需要设置用户id值
我不打算发布一个例子,因为这本手册非常夸张,而且它是一本很好的读物
为什么我认为你的想法不好?嗯,你在复制数据(根据你的定义,“你希望它们总是一样的”)而没有获得价值。复制列完全没有任何用处,可以删除。如果将它们用作键或外键引用,则这两列完全可以互换。因此,只需扔掉其中一个就可以了
if(mysql_query("INSERT INTO `users` (`name`) VALUES ('name')")){
$id = (int)mysql_insert_id();
mysql_query("UPDATE `users` SET `User_ID` = {$id}");
}
但从一开始这就不是一个好主意:)如果您使用的是自动增量,那么您需要的是内部:
SELECT AUTO_INCREMENT FROM information_schema.tables
WHERE table_name = 'myTable' AND table_schema = DATABASE( )
因此,在这种情况下,请使用以下示例:
INSERT INTO myTable (ID, User_ID) values ( NULL ,
(
SELECT AUTO_INCREMENT FROM information_schema.tables
WHERE table_name = 'myTable' AND table_schema = DATABASE( )
)
);
Null表示自动递增ID。子查询将生成要使用的自动递增ID
如果未使用“自动增量”,则只需执行以下操作:
INSERT INTO myTable (ID, User_ID) values ( 5 , ID );
。。。因此,将ID引用到User_ID和User_ID,我希望它们总是相同的值,这听起来像是在解释你之前的评论最糟糕的地方。主意曾经。
如果您只是将其标记为“坏”,但不指出原因,则没有多大帮助?如果您有两列包含完全相同的数据,那么这有什么意义?这就是为什么这是有史以来最糟糕的想法,我恰好同意+这里。谢谢:)。。然后删除用户ID。RE:您的最后一个查询:为什么不直接将INSERT写入myTable(ID,用户ID)值(5,5)代码>然后?@sttlcu我没有写这个问题;)。我甚至不知道第二列包含相同数据的意义。但它可以避免两次设置/发送相同的参数。