查询学说 1

Query with doctrine 1

我尝试从 phpMyAdmin 进行以下 sql 查询,他工作得很好并且 return 1 个结果符合原则 1 但我得到一个例外:

SQLSTATE[42S22]: Column not found: 1054 Champ 'MOY1100' inconnu dans where clause. Failing Query: "select id_au FROM acteur_unite WHERE code_unite = MOY1100 LIMIT 1"

此处 sql 查询谁在 phpMyAdmin 上工作:

SELECT id_au FROM acteur_unite WHERE code_unite = 'MOY1100' LIMIT 1

这是我的学说查询:

 public function getId($code_unite) {

        $con = Doctrine_Manager::getInstance()->connection();

        $st = $con->execute("select id_au FROM acteur_unite
            WHERE code_unite = $code_unite LIMIT 1");

        $id = null;
        // fetch query result
        $data = $st->fetch(PDO::FETCH_ASSOC);
        $id = $data['id_au'];
        return $id;
    }

我哪里错了?

非常感谢

您似乎遗漏了 var $code_unite

周围的引号
  $st = $con->execute("select id_au FROM acteur_unite
        WHERE code_unite = '$code_unite' LIMIT 1");

但要小心在 sql 中使用 var .. 你有被 sql 注入的风险。然后以正确的方式检查您的框架 param_binding .. 以避免这种风险

例如:

  $st = $con->execute("select id_au FROM acteur_unite
    WHERE code_unite = :code_unite LIMIT 1");

  $st->bindParam(':code_unite', $code_unite, PDO::PARAM_STR);