1

如何在一个插入查询中插入来自查询结果和其他变量的数据?

样本:

$id = $_POST['id'];  
$address = $_POST['address'];  
$email = $_POST['email'];

$query = "INSERT INTO info_table(fname, lname, address, email) VALUES (SELECT fname, lname, FROM info WHERE id = '$id')";  
$result = db->prepare($query);  
$result->execute();  

我如何插入$address$email与选择结果变量一起?

4

2 回答 2

2

这应该可以解决查询:

INSERT INTO info_table (
    fname, 
    lname, 
    address, 
    email
) 
SELECT 
    fname, 
    lname,
    ':address',
    ':email' 
FROM 
    info 
WHERE 
    id = ':id' 

你没有在这里使用准备。你真的应该绑定到参数:address, :email, 和:id

$result = db->prepare($query);  
$result->bindParam(':id', $id, PDO::PARAM_STR);
$result->bindParam(':email', $email, PDO::PARAM_STR);
$result->bindParam(':address', $address, PDO::PARAM_STR);
$result->execute();
于 2012-12-28T14:24:22.810 回答
-1

准确回答您的问题:

$query = "INSERT INTO MyInsecureTable (fname, lname, address, email) SELECT fname, lname, '$address', '$email' FROM info WHERE id = '$id'";

但它是吓人的。离开我。

于 2012-12-28T14:22:24.610 回答