Ich mache eine einfache Abfrage, aber es funktioniert nicht und ich weiß nicht warum. Ich habe mich kürzlich mit PDO-Verbindungen zu Datenbanken vertraut gemacht. HierVerletzung Integritätsbedingung: 1052 Spalte 'ID' in Where-Klausel ist mehrdeutig
ist der Code:
Die Verbindungen ist:
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(); }
dann erstelle ich aa Abfrage, die wie folgt funktioniert:
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)) {
aber dann Ich erstelle eine andere Abfrage in einem anderen Seite wie diese, die nicht funktioniert:
$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);
und ich versuchte:
$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))
aber dann dieser Fehler angezeigt:
SQLSTATE [23000]: Integrität Einschränkungsverletzung: 1052 Column 'ID' in where-Klausel ist mehrdeutig
Das ist, weil Sie mehrere mögliche ID-Felder haben, eins für N und eins für J, versuchen Sie N.id oder J.id in Ihrer WHERE-Klausel. – joe42