插入……选择PHP


INSERT ... SELECT PHP

我需要一双新的眼睛来帮助我发现我的代码中的错误。

 <?php
ob_start();
session_start();
$sql = "INSERT INTO pets (owner_service, Gender, Age, Size, Location, idealLocation, Service, memberID) 
        SELECT ('{$_POST['owner_service']}', '{$_POST['gender']}', '{$_POST['age']}', '{$_POST['size']}', '$locationCommaString', '{$_POST['ideal_location']}', '{$_POST['service']}', memberID FROM members WHERE username = '{$_POST['username']}')";

        if($conn->query($sql) === TRUE) {
        echo "successful";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
?>

错误提示:

你的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在第2行'FROM members WHERE username = ")'附近使用正确的语法

MySQL版本是5.5.41

我想一定是:

$sql = "INSERT INTO pets (owner_service, Gender, Age, Size, Location, idealLocation, Service, memberID) 
        SELECT '{$_POST['owner_service']}', '{$_POST['gender']}', '{$_POST['age']}', '{$_POST['size']}', '$locationCommaString', '{$_POST['ideal_location']}', '{$_POST['service']}', memberID FROM members WHERE username = '{$_POST['username']}'";

您必须删除SELECT之后和语句末尾的括号。你还必须学习预处理语句