<分区>
我想在同一个文件中进行多个数据库查询:
创建一个用户,选择新创建用户的 UID,并为同一用户分配特定角色。
从新创建的用户处获取 UID 后,我将该值保存到 $userID
变量中,但在文件末尾,变量值丢失了。
为什么? (PS:我暂时不考虑安全性)。
//Create User
$email = strip_tags($_POST['email']);
$conectar = mysqli_connect(HOST, USER, PASS, DATABASE);
$query = "INSERT INTO usuarios
(userEmail)
VALUES
('$email')";
$insertarBase = mysqli_query($conectar,$query);
mysqli_close($conectar);
//look for the UID of the newly created user
$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE);
$buscarUsuario = "SELECT userID, userEmail
FROM usuarios
WHERE userEmail='$email'
";
$resultadoBusqueda = mysqli_query($conectar2,$buscarUsuario);
$row = mysqli_fetch_array($resultadoBusqueda);
$userID = $row['userID'];
mysqli_close($conectar2);
//assign a role to the newly created user
$conectar3 = mysqli_connect(HOST, USER, PASS, DATABASE);
$asignarRol = "INSERT INTO rolesUsuarios
(userID, nombreRol)
VALUES
('$userID', 'registered')
";
$asignarRolenBase = mysqli_query($conectar3,$asignarRol);
mysqli_close($conectar3);
echo $userID; //Here the content of $userID is gone, nothing gets printed out
编辑:
由于某些奇怪的原因,$userID = mysqli_insert_id($conectar);
返回零。
usuarios表语句的创建是这样的:
CREATE TABLE usuarios(
userID int unsigned not null auto_increment primary key,
userEmail char(50) not null);
此外,echo $asignarRol;
返回:
INSERT INTO rolesUsuarios (userID, nombreRol) VALUES ('0', 'noAutorizado')