繁体   English   中英

完整性约束违规:1052 where子句中的列'id'不明确

[英]Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous

我正在进行一个简单的查询,但它不起作用,我不知道为什么。 我最近开始熟悉PDO与数据库的连接。

这是代码:

  1. 连接是:

     define("HOST","localhost"); define("USER","root"); define("PASS","password"); define("BASE","portugalforcedb"); try{ $conexao = 'mysql:host='.HOST.';dbname='.BASE; $connect = new PDO($conexao, USER, PASS); $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $erro){ echo $erro->getMessage(); } 
  2. 然后我创建一个像这样工作的查询:

     try{ $query = $connect->query("SELECT N.id,N.titulo,N.texto,N.autor,N.data,J.imagem_noticia FROM noticias N JOIN jogo J ON N.jogo_id = J.id WHERE N.publicada =1 ORDER BY N.data DESC LIMIT 4"); }catch(PDOException $erro){ echo $erro->getMessage(); } while($dados = $query->fetch(PDO::FETCH_ASSOC)) { 

但后来我在另一个页面中创建另一个查询,这样不起作用:

$id = $_GET['id'];
    try{
    $query = $connect->prepare("SELECT N.id,N.titulo,N.texto,N.autor,N.data,J.imagem_noticia FROM noticias N JOIN jogo J ON N.jogo_id = J.id WHERE N.publicada =1 AND id=numero");
    $query->bindParam('numero',$id,PDO::PARAM_INT);
    $query->execute();
}catch(PDOException $erro){
    echo $erro->getMessage();
}

$dados = $query->fetch(PDO::FETCH_ASSOC);

我试过了:

$id = $_GET['id'];
    try{
    $query = $connect->query("SELECT N.id,N.titulo,N.texto,N.autor,N.data,J.imagem_noticia FROM noticias N JOIN jogo J ON N.jogo_id = J.id WHERE N.publicada =1 AND id=numero");
}catch(PDOException $erro){
    echo $erro->getMessage();
}

while($dados = $query->fetch(PDO::FETCH_ASSOC))

但然后出现此错误:

SQLSTATE [23000]:完整性约束违规:1052 where子句中的列'id'不明确

在查询结束时id=numero id需要表别名。 它应该是N.id或J.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM