如何从一个表中获取变量并将其插入另一个表中

时间:2015-04-12 17:44:03

标签: php mysql mysqli insert

使用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执行此操作时,一切正常。我花了两天时间试图找出问题是什么以及我做错了什么,但到目前为止,我已经空了。我希望有人能帮我看看我做错了什么。

3 个答案:

答案 0 :(得分:1)

我最近也遇到过类似的问题,解决方法是将 group 中的列名替换为其他内容

答案 1 :(得分:0)

首先,不要通过'name'找到'id',名称不是唯一的,你最好通过电子邮件找到id,因为电子邮件地址是唯一的。

其次,你的user_group表中确实有用户列吗?

答案 2 :(得分:0)

解决方案是在特殊字组中添加引号,组是保留字。试试`group`