【问题标题】:Multiple insert issue多次插入问题
【发布时间】:2014-09-07 15:56:47
【问题描述】:

当我使用此代码时,我会为存储在 users 表中的每个 id 获得一条记录。相反,我希望每次只能插入 1 条记录,即与记录的用户 ID 匹配的记录。

if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$acname = mysqli_real_escape_string($con, $_POST['ACName']);
$btu = mysqli_real_escape_string($con, $_POST['BTU']);
$space = mysqli_real_escape_string($con, $_POST['Space']);
$energyclass = mysqli_real_escape_string($con, $_POST['EnergyClass']);



$sql="INSERT INTO aircondition (id, ACName, BTU, Space,  EnergyClass)
SELECT id, '$acname', '$btu', '$space', '$energyclass'
FROM  users";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
header('location:aircondition.php');


mysqli_close($con);
?>

【问题讨论】:

    标签: php mysql sql-insert


    【解决方案1】:

    您的选择语句中必须有 where 子句

    $sql="INSERT INTO aircondition (id, ACName, BTU, Space,  EnergyClass)
    SELECT id, '$acname', '$btu', '$space', '$energyclass'
    FROM  users WHERE usernamecolumn= currentusername ;
    

    【讨论】:

    • 问题是,例如,当我以 id 2 的用户身份登录时,我尝试在表中插入一个新值,结果将是插入的每个 id 的一个值users 表。我应该如何定义当前登录的 id?
    • 你可以在你登录的时候把它放在一个seesion变量中。然后当你想获得当前用户时使用这个变量
    • 这样的方法可行吗? mysql_select_db("my_db",$conn); $sql="select * from users where name='$_GET[userlogin]' and password='$_GET[password]'"; $_SESSION['id']='id'; $result=mysql_query($sql,$conn) or die(mysql_error());
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多