PHP PDO插入参数不起作用

PHP PDO插入参数不起作用,php,mysql,pdo,Php,Mysql,Pdo,我完全搞不懂为什么直接添加值而不是作为参数时,PDO插入可以正确工作。以下是有效的方法: $stmt = $conn->prepare("INSERT INTO class_mh_q (MH_ID, Question, Answer, Comments) VALUES ('$modID','$thisQID','$thisQ

我完全搞不懂为什么直接添加值而不是作为参数时,PDO插入可以正确工作。以下是有效的方法:

$stmt = $conn->prepare("INSERT INTO class_mh_q
                              (MH_ID, Question, Answer, Comments)
                        VALUES
                              ('$modID','$thisQID','$thisQAnswer','$thisComment')
                        ");
$stmt->execute();
但是,这不起作用:

$stmt = $conn->prepare("INSERT INTO class_mh_q
                              (MH_ID, Question, Answer, Comments)
                        VALUES
                              (:mh_id, :q_id, :answer, :comment)
                        ");

$params = array( ':mh_id' => $modID,
                 ':q_id' => $thisQID,
                 ':answer' => $thisQAnswer,
                 ':comment' => $thisComment
               );
$stmt->execute($params);

有人知道我的设置有什么问题吗?

这没什么问题。显示您的完整代码。如果您使用与第一个示例相同的连接方法;无法从数组中的参数中删除冒号