查询原则1

时间:2018-02-01 08:38:55

标签: sql doctrine symfony1 doctrine-1.2

我尝试从phpMyAdmin进行以下sql查询,它完美地运行并返回带有doctrine 1的1个结果但是我得到了一个例外:

  

SQLSTATE [42S22]:未找到列:1054 Champ' MOY1100'不合适的   where子句。失败的查询:"选择id_au FROM acteur_unite WHERE   code_unite = MOY1100 LIMIT 1"

这里是在phpMyAdmin上工作的sql查询:

  

SELECT id_au FROM acteur_unite WHERE code_unite =' MOY1100'限制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;
    }

我哪里错了?

提前多多感谢

1 个答案:

答案 0 :(得分:3)

似乎你错过了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);