Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在将值插入/复制到其他文件时获取ID_Php_Mysql - Fatal编程技术网

Php 在将值插入/复制到其他文件时获取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

是否可以获取MySQL数据库中的条目的ID? 或者更好地将ID的值复制到另一个字段中? 例如,我有:

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我没有写这个问题;)。我甚至不知道第二列包含相同数据的意义。但它可以避免两次设置/发送相同的参数。