我正在尝试根据创建的UserID
(自动递增)的第一个表将相同的数据插入第二个表。
我创建了一个INSERT查询,该查询将用户注册数据插入到users_tb
表中。它可以成功工作。然后,我需要基于address_tb
中的UserID
将描述数据的地址插入users_tb
表中。但不幸的是,它不起作用。
//Rady to insert:
$results = $Street. ", " .$Apt. ", " .$City. ", " .$State. ", " .$ZipCode. ", " .$Country;
$query = mysql_query("INSERT INTO users_tb (UserId , FirstName , LastName , Email , Username , Password , Street , Apt , City , State , ZipCode , Country , Address , HomePhone , MobilePhone , Lat, Lng, Membership) VALUES ('' , '$First_Name' , '$Last_Name' , '$Email' , '$Username' , '$hashedPW' , '$Street' , '$Apt' , '$City' , '$State' ,'$ZipCode' ,'$Country' , '$results' , '$Ph_Number' , '$Mb_Number' , '0' , '0' , '1')");
// Insert Data into address_tb
$ad = mysql_query("SELECT UserID , Username FROM users_tb WHERE Username = $Username");
$adad = mysql_fetch_row($ad);
$UserID = mysql_real_escape_string($adad['UserID']);
$query = mysql_query("INSERT INTO address_tb (AddressID , Street , Apt , City , State , ZipCode , Country , Address , Lat , Lng , UserID) VALUES ('' , '$Street' , '$Apt' , '$City' , '$State' ,'$ZipCode' ,'$Country' , '$results' , '0' , '0' , '$UserID')");
我还需要在address_tb
表中分别包含UserID
的地址字段。
答案 0 :(得分:0)
Flowables
应该是单引号,因为它是字符串。
$Username
第二个问题是,$ad = mysql_query("SELECT UserID , Username FROM users_tb WHERE Username = '$Username'");
返回枚举数组即键作为数字索引。更改为[mysql_fetch_row][1]
。
mysql_fetch_assoc
另一种方法是获取最后一个插入ID并使用它添加地址。 插入用户表后,使用以下方法检索上一个用户ID
$adad = mysql_fetch_assoc($ad);
直接将$last_user_id = mysql_insert_id();
用于$last_user_id
上的插入查询。
请注意,
address_tb
已过时。您应该对参数化查询(https://www.w3schools.com/php/php_mysql_prepared_statements.asp)使用mysql
。
答案 1 :(得分:0)
这可以使用INSERT SELECT在1个查询中完成:
INSERT INTO address_tb (AddressID,
Street,
Apt,
City,
State,
ZipCode,
Country,
Address,
Lat,
Lng,
UserID)
SELECT (AddressID,
Street,
Apt,
City,
State,
ZipCode,
Country,
Address,
Lat,
Lng,
UserID)
FROM users_tb
WHERE users_tb.Username = ?;
答案 2 :(得分:0)
我做到了。谢谢大家说实话,我不明白第二个INSERT查询没有完成address_tb中数据的原因是什么。我只接受了第一个查询,并将其编辑为第二个查询,它开始工作。如我所见,我的新查询没有任何区别,这是我编辑第一个查询得到的。这是我的第二个查询:
<< $ sql2 = mysql_query(“ INSERT INTO address_tb(AddressID,Street,Apt,City,State,ZipCode,Country,Address,Lat,Lng,UserId)VALUES('','$ Street','$ Apt ','$ City','$ State','$ ZipCode','$ Country','$ results','0','0','$ UserID')“); >>