使用PHP我想在表中插入几个变量,然后从该表中检索id并将其插入带有PHP代码变量的anther表中。
我首先将变量插入到表A中,如下所示:
$sqlString = "INSERT INTO users (firstname, lastname, email, password)
VALUES ('" . $_POST['name'] . "', '" . $_POST['lastname'] . "', '" . $_POST['email'] . "', '" . $_POST['password'] . "')";
mysqli_query($dbLink, $sqlString) or die("Could not register new user.." . mysqli_error($dbLink));
在下一行代码中,我检索新创建的用户的ID:
$sqlString = "SELECT id FROM users WHERE name='".$_POST['name']."' LIMIT 1";
$result = mysqli_query($dbLink, $sqlString) or die("Could not check for existing user.." . mysqli_error($dbLink));
$row = mysqli_fetch_assoc($result);
最后,我尝试将用户ID和新变量输入另一个表。这就是事情失败的地方。
$group = 4;
$sqlString = "INSERT INTO user_group (user, group)
VALUES ('" . $row['id'] . "', '" . $group . "')";
mysqli_query($dbLink, $sqlString) or die("Could not register group.." . mysqli_error($dbLink));
我也尝试过这样,但那也没有用:
$group = 4;
$userid = $row['id'];
$sqlString = "INSERT INTO user_group (user, group)
VALUES ('" . $userid . "', '" . $group . "')";
mysqli_query($dbLink, $sqlString) or die("Could not register group.." . mysqli_error($dbLink));
尝试此操作时收到的错误消息是:SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在“用户,组”附近使用正确的语法。值(' 32',' 4')'在第1行
到目前为止,我发现问题在于插入用户ID。当我尝试仅使用$ group执行此操作时,一切正常。我花了两天时间试图找出问题是什么以及我做错了什么,但到目前为止,我已经空了。我希望有人能帮我看看我做错了什么。
答案 0 :(得分:1)
我最近也遇到过类似的问题,解决方法是将 group 中的列名替换为其他内容
答案 1 :(得分:0)
首先,不要通过'name'找到'id',名称不是唯一的,你最好通过电子邮件找到id,因为电子邮件地址是唯一的。
其次,你的user_group表中确实有用户列吗?
答案 2 :(得分:0)
解决方案是在特殊字组中添加引号,组是保留字。试试`group`