PHP SQL选择查询不起作用

时间:2015-04-20 10:36:44

标签: php mysql pdo

我的sql,继续产生一个空结果的错误。我试图从数据库中选择一个过去的学生,该学生的成绩和结果与存储在数据库中的过去学生相同。我使用pdo语句来准备语句。

我继续获得返回的空查询,即使在数据库中有一个学生已经学习数学(科目1)并获得了A(1年级)。此查询无法正常工作。

$query = $db->prepare("SELECT * FROM paststudent WHERE subject1 = :subject1 AND grade1 = :grade1");

if ($autumn != "" and $winter == "" and $spring == "" and $summer == "") {
       $query = $db->prepare("SELECT * FROM paststudent WHERE subject1 = :subject1 AND grade1 = :grade1 AND subject2 = :subject2 AND grade2 = :grade2 AND subject3 = :subject3 AND grade3 = :grade3 AND subject4 = :subject4 AND grade4 = :grade4 AND autumn = :autumn");
        // binds the value to the query variable 
        $query->bindValue(':subject1', $subject1, PDO::PARAM_STR);
        $query->bindValue(':grade1', $grade1, PDO::PARAM_STR);
        $query->bindValue(':subject2', $subject2, PDO::PARAM_STR);
        $query->bindValue(':grade2', $grade2, PDO::PARAM_STR);
        $query->bindValue(':subject3', $subject3, PDO::PARAM_STR);
        $query->bindValue(':grade3', $grade3, PDO::PARAM_STR);
        $query->bindValue(':subject4', $subject4, PDO::PARAM_STR);
        $query->bindValue(':grade4', $grade4, PDO::PARAM_STR);
        $query->bindValue(':autumn', $autumn, PDO::PARAM_STR);
        // executes the query
        $query->execute();
        // the value of the query is stored to result
        $result = $query->fetch(PDO::FETCH_ASSOC);
    // fetch() instead of fetchAll just gets the first result



    }

1 个答案:

答案 0 :(得分:0)

请你在这里转储你的SQL查询,这将很容易解决你的问题。我可以看到所有AND条件和如果任何AND条件为假,那么你将得到空结果。