Php 如何在两个不同表的两行中插入相同的UUID
我尝试下一个脚本:Php 如何在两个不同表的两行中插入相同的UUID,php,mysql,database,uuid,Php,Mysql,Database,Uuid,我尝试下一个脚本: // Insert data into mysql $qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES (UUID(), '$REFERENCE', '$CODE', '$NAME')"; $result=mysql_query($qry); $qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('$ID')"; <--- Here is a pr
// Insert data into mysql
$qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES (UUID(), '$REFERENCE', '$CODE', '$NAME')";
$result=mysql_query($qry);
$qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('$ID')"; <--- Here is a problem
$result=mysql_query($qry2)
假设
ID
是可以在$qry2
之前添加的表唯一索引:
$ID = mysql_insert_id();
假设
ID
是可以在$qry2
之前添加的表唯一索引:
$ID = mysql_insert_id();
在发送INSERT
s并将值放入PHP中的语句之前,只需执行SELECT UUID()
。类似这样(未经测试):
在发送INSERT
s并将值放入PHP中的语句之前,只需执行SELECT UUID()
。类似这样(未经测试):
为什么不像其他人那样使用自动递增id?为什么不像其他人那样使用自动递增id?UUID在插入过程中自动关联的问题。。。我不认为它可以选择之前INSERT@SergiuCostas:
SELECT UUID()
是MySQL中的有效SQL语句。它应该为您提供一个UUID,您可以将其用于插入。另一个解决方案是用户定义的变量-请参见我的示例中的@UUID
。这将是我的首选方式,因为它不需要您在任何时候从PHP访问UUID。TBK-您的答案接近正确的方式。。。。接下来是工作脚本:$q=“选择UUID()作为uid”$res=mysql_query($q)或die('q error:'.mysql_error())$row=mysql_fetch_assoc($res);//将数据插入mysql$qry=“插入$tbl_name1(ID、引用、代码、名称)值(“$row['uid']”、“$REFERENCE'、“$CODE'、“$NAME”)$result=mysql\u query($qry)或die('err 034r'.mysql\u error())$qry2=“插入到$tbl_name2(产品)值(“$row['uid']”)中”$result=mysql_query($qry2)或die('gg2345'.mysql_error());太好了,恭喜你成功了。我修正了答案,因为我有一个输入错误(错过了$
行前面的$
,它必须是$UUID=$row[“UUID”]
)。UUID在插入过程中自动关联的问题。。。我不认为它可以选择之前INSERT@SergiuCostas:SELECT UUID()
是MySQL中的有效SQL语句。它应该为您提供一个UUID,您可以将其用于插入。另一个解决方案是用户定义的变量-请参见我的示例中的@UUID
。这将是我的首选方式,因为它不需要您在任何时候从PHP访问UUID。TBK-您的答案接近正确的方式。。。。接下来是工作脚本:$q=“选择UUID()作为uid”$res=mysql_query($q)或die('q error:'.mysql_error())$row=mysql_fetch_assoc($res);//将数据插入mysql$qry=“插入$tbl_name1(ID、引用、代码、名称)值(“$row['uid']”、“$REFERENCE'、“$CODE'、“$NAME”)$result=mysql\u query($qry)或die('err 034r'.mysql\u error())$qry2=“插入到$tbl_name2(产品)值(“$row['uid']”)中”$result=mysql_query($qry2)或die('gg2345'.mysql_error());太好了,恭喜你成功了。我修正了答案,因为我有一个输入错误(错过了行前面的$
,它必须是$UUID=$row[“UUID”]
)。
$result = mysql_query("SELECT UUID() AS UUID") or die('SQL error: ' . mysql_error());
$row = mysql_fetch_assoc($result);
$UUID = $row["UUID"];
$qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES ('$UUID', '$REFERENCE', '$CODE', '$NAME')";
$result=mysql_query($qry);
$qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('$UUID ')"; <--- Here is a problem
$result=mysql_query($qry2)
SET @UUID = (SELECT UUID() AS UUID);
INSERT INTO test1 VALUES(@UUID, "foo");
INSERT INTO test1 VALUES(@UUID, "bar");