整合性约束违规:1052列'id'在该子句模棱两可

问题描述 投票:0回答: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(); }
  1. 然后我创建了一个像这样起作用的查询:
    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))
    
    {
    
  2. 但是,我在另一个页面中创建另一个不起作用的查询:
    $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列“ ID”中的子句模棱两可

查询的结尾。 ID需要表别名。应该是n.id或j.id

php mysql pdo
1个回答
45
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.