이상한 문제가 있습니다. 왜 작동하지 않는지 전혀 알지 못합니다. 내가 만들어 다음 쿼리가 :이 쿼리는 몇 주 전에 잘 작동했다MySQL 쿼리가 작동하기 전에, 지금은 그렇지 않습니까?
SELECT servers.id, servers.name, servers.address, servers.port, servers.up, servers.down, servers.genre, servers.score, servers.version, servers.country, ROUND(AVG(reviews.average) , 0) AS review
FROM servers
INNER JOIN reviews ON servers.id = reviews.server
ORDER BY servers.score DESC
합니다. "서버"테이블에서 많은 필드를 가져오고, "리뷰"테이블의 평균 필드가 "리뷰"테이블의 서버가 "서버"테이블의 ID와 동일한 것을 의미합니다.
내가 말했듯이이 쿼리는 이전에 문제없이 작동했습니다. 어제는 사이트의 중요한 부분이 작동하지 않는 것으로 나타났습니다.이 쿼리가 실패했다는 것을 알았습니다.
"서버"테이블에 4 개의 항목이 있으므로 정확히 1 행을 반환하는 것으로 확인되었습니다. 이것은 실행시 phpMyAdmin이 제공하는 것입니다 그 쿼리 :
id name address port up down genre score version country review
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
아무도 나를 계몽 수 있습니까? 내가 막혀 있기 때문에 최후의 수단으로 이곳에 왔습니다.
당신은 테이블을 확인했다? 어쩌면 백엔드에서 잘못된 점이있을 수 있습니다. (내 조언은 테이블이 여전히 있는지 확인하기 위해 워크 벤치를 사용합니다) –
'select * from servers' 쿼리를 수행하여 데이터가 누락되었는지 확인할 수 있습니다. SQL 주입 공격의 희생자가되었을 수 있습니다. –
나는 누락 된 데이터가 없다는 것을 100 % 확신하고 있으며, 나는 SQL 인젝션의 모든 기회를 제거했다 (나는 사용자 입력을 깨끗하게하고 준비된 문장을 사용한다). 'SELECT * FROM servers'는 예상되는 행 수를 제공하는 반면이 쿼리는 모든 필드가 NULL 인 1을 제공합니다. – fruitcup