Php 完整性约束冲突:1052列';id';where子句中的where子句是不明确的
我正在做一个简单的查询,但它不起作用,我不知道为什么。我最近开始熟悉到数据库的PDO连接 代码如下:Php 完整性约束冲突:1052列';id';where子句中的where子句是不明确的,php,mysql,pdo,Php,Mysql,Pdo,我正在做一个简单的查询,但它不起作用,我不知道为什么。我最近开始熟悉到数据库的PDO连接 代码如下: 连接是: define("HOST","localhost"); define("USER","root"); define("PASS","password"); define("BASE","portugalforcedb"); try{ $conexao = 'mysql:host='.HOST.';dbname='.BASE; $connect = new PDO($
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();
}
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]:完整性约束冲突:where子句中的1052列“id”不明确
在查询的末尾
id=numero
。id需要表别名。它应该是N.id或J.id这是因为您有多个可能的id字段,一个用于N,一个用于J,请尝试在WHERE子句中使用N.id或J.id。