【问题标题】:Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous完整性约束违规:1052 列“id”在 where 子句中不明确
【发布时间】:2013-10-16 22:32:06
【问题描述】:

我正在做一个简单的查询,但它不起作用,我不知道为什么。我最近开始熟悉到数据库的 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 字段,一个用于 N,一个用于 J,请尝试在 WHERE 子句中使用 N.id 或 J.id。

标签: php mysql pdo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2019-04-14
    • 1970-01-01
    • 2019-10-03
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多