9
簡単なクエリを作成していますが、機能していないため、なぜその理由がわかりません。私は最近、データベースへのPDO接続について知り始めました。整合性制約違反:1052 where句の '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 ORDER BY N.data DESC LIMIT 4"); }catch(PDOException $erro){ echo $erro->getMessage(); } while($dados = $query->fetch(PDO::FETCH_ASSOC)) {
しかし:
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();
}
その後、私はこのように動作しますAAクエリを作成別のクエリを別のクエリで作成する
$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フィールドがあるためです.1つはN、もう1つはJです。WHERE句にN.idまたはJ.idを使用してみてください。 – joe42