我尝试从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
WHEREcode_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;
}
我哪里错了?
提前多多感谢
答案 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);