使用命名参数在我的SQL中找不到错误

时间:2014-07-21 17:29:16

标签: php mysql sql pdo

在PHP中,我正在构建,至少尝试使用命名参数进行查询,如此...

$answerNumber = "a1";
$questionNumber = "q2";
$answerText = "Test Answer";

//INSERT QUERY
$sql = "INSERT INTO $questionNumber (:answerNumber) VALUES (:answerText)";
$stmt = $db->prepare($sql);
$stmt->bindValue(':answerNumber', $answerNumber);
$stmt->bindValue(':answerText', $answerText);
$stmt->execute();

$errorInfo = $stmt->errorInfo();

if(isset($errorInfo[2])){
    $error =    $errorInfo[2];
    echo $error;
} else {
    echo "No errors.";
};

但是我不断收到错误。错误返回...

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在''a1'附近使用正确的语法。)第1行的VALUES('Test Answer')'

1 个答案:

答案 0 :(得分:2)

删除:

INSERT INTO $questionNumber (:answerNumber) VALUES (:answerText) 
             here------------^

使用列名而不是参数内容。你的专栏名称是answerNumber,对吗?因为首先必须为要插入的列命名。然后按该顺序列出值。例如:

insert into users (id, name) values (1, 'John')

并在PDO中

insert into users (id, name) values (:id, :name)