prosource

mysql 8에서 sql 오류 0이 발생하는 이유는 무엇입니까?

probook 2023. 8. 21. 21:25
반응형

mysql 8에서 sql 오류 0이 발생하는 이유는 무엇입니까?

나는 내가 왜 이 오류가 발생하는지 알 수 없는 것 같습니다. 나는 SQL 모드가 설정된 mysql 8에 percona 서버를 사용하고 있습니다.sql_mode = "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

이것은 내가 받고 있는 오류입니다. sql 오류 0?

 MySQL: Invalid Query: 
            SELECT
              Rank,
              SpecialRank,
              TotalRank,
              DonationTime,
              RankExpirationTime + INTERVAL 766 HOUR
            FROM users_donor_ranks
            WHERE UserID = '1' SQL error: 0 ()

내가 사용하고 있는 sql 테이블

CREATE TABLE `users_donor_ranks` (
  `UserID` int(10) NOT NULL DEFAULT '0',
  `Rank` tinyint(2) NOT NULL DEFAULT '0',
  `DonationTime` datetime DEFAULT NULL,
  `Hidden` tinyint(2) NOT NULL DEFAULT '0',
  `TotalRank` int(10) NOT NULL DEFAULT '0',
  `SpecialRank` tinyint(2) DEFAULT '0',
  `InvitesRecievedRank` tinyint(4) DEFAULT '0',
  `RankExpirationTime` datetime DEFAULT NULL,
  PRIMARY KEY (`UserID`),
  KEY `DonationTime` (`DonationTime`),
  KEY `SpecialRank` (`SpecialRank`),
  KEY `Rank` (`Rank`),
  KEY `TotalRank` (`TotalRank`)
) ENGINE=InnoDB CHARSET=utf8mb4;

내가 하고 있는 질문

G::$DB->query("
        SELECT
          Rank,
          SpecialRank,
          TotalRank,
          DonationTime,
          RankExpirationTime + INTERVAL 766 HOUR
        FROM users_donor_ranks
        WHERE UserID = '$UserID'");

RANK는 MySQL 버전 8.0.2에서 예약된 단어입니다.

백택스를 사용하여 이 식별자를 따옴표로 묶어야 합니다.

SELECT
    `Rank`,
    SpecialRank,
    TotalRank,
    DonationTime,
    RankExpirationTime + INTERVAL 766 HOUR
FROM users_donor_ranks
WHERE UserID = ?

언급URL : https://stackoverflow.com/questions/61945309/why-am-i-getting-sql-error-0-with-mysql-8

반응형