php - PDO 不会更新数据库中的数据,为什么?

标签 php mysql pdo

我正在尝试使用 PDO 更新我的数据库,但它不起作用。我可以毫无问题地选择数据,但更新却不起作用。我没有收到错误消息,但执行查询后,我的数据库中没有任何变化。

这是我的代码,此方法是类的一部分,因此定义了 pdo,但我不会将整个代码粘贴到此处,仅粘贴重要的部分:

public function modify($q, $data){
        try{
            $stmt = $this->pdo->prepare($q);
            $stmt->execute($data);
            return true;
        }
        catch(PDOException $e){
            $this->error = $e->getMessage();
            return false;
        }
    }

还有:

$question = new Question(base64_decode($_POST['value']), $_POST['question'], $_POST['code'], $_POST['number'], $_POST['answer1'],
    $_POST['answer2'], $_POST['answer3'], $_POST['answer4'], $_POST['correct_answer']);

$array = [
    ':qid' => $question->qid,
    ':question' => $question->question,
    ':code' => $question->code,
    ':number' => $question->number ,
    ':answer1' => $question->answer1,
    ':answer2' => $question->answer2,
    ':answer3' => $question->answer3,
    ':answer4' => $question->answer4,
    ':correct_answer' => $question->correct_answer#9
];

$q = 'UPDATE questions SET question = :question AND code = :code AND number = :number AND
        answer_1 = :answer1 AND answer_2 = :answer2 AND answer_3 = :answer3 AND answer_4 = :answer4
        AND correct_answer = :correct_answer WHERE question_id = :qid';

$db->query('SET NAMES UTF8');
$db->modify($q, $array);

谢谢!

最佳答案

更新语句将要更新的字段用逗号分隔,而不是 ands:

$q = 'UPDATE questions SET question = :question, code = :code, 
       number = :number, answer_1 = :answer1, answer_2 = :answer2,
        answer_3 = :answer3, answer_4 = :answer4,
        correct_answer = :correct_answer 
      WHERE question_id = :qid';

关于php - PDO 不会更新数据库中的数据,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111013/

相关文章:

mysql - SQL JPA 原生查询

mysql - 使用 MariaDB/MySQL 继续获得 1064

php - 如何使用pdo连接到mysql

php - 收到错误 'Call to undefined method PDOStatement::store_result()'

php PDO mysql - 行为查询

php - CakePHP 3 下的摘要认证

php - Javascript 魔术方法

php - PHP 5 中的输出缓冲和大型 MySQL 结果集

php - 对 "current page"导航元素进行分类的最简单方法?

php - mysql 连接到许多表,同时包括一个主表