从选择查询结果中插入数据与其他外部/已发布变量

时间:2012-12-28 14:16:10

标签: php sql pdo

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

示例:

$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与选择结果变量一起插入?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:-1)

准确回答你的问题:

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

但它吓到了。出我的。