반응형
MySQL CREATE/DROP USER가 0을 반환함
왜?
$dbh->exec(CREATE USER 'usr'@'localhost' IDENTIFIED BY 'Pass100');
사용자가 생성되어도 0이 반환됩니까?이것은 MariaDB 10에 관한 것입니다.
PDO 문서에 따르면PDO::exec()
변경 또는 삭제된 행의 수를 반환합니다.변경 또는 삭제된 행이 없으면 0입니다.
PDO::exec()은 발행한SQL 문에 의해 변경 또는 삭제된 행의 수를 반환합니다.영향을 받은 행이 없는 경우 PDO::exec()은 0을 반환합니다.
A CREATE USER/DROP USER
스테이트먼트를 암묵적으로 변경합니다.mysql.user
테이블은 어떤 행에도 영향을 준 것으로 등록되지 않습니다.INSERT
또는DELETE
진술할 수 있다, 그래서exec()
0을 반환합니다.
예를 들어 명령줄에서 다음과 같이 입력합니다.
MariaDB [(none)]> CREATE USER u@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> DROP USER u@localhost;
Query OK, 0 rows affected (0.00 sec)
그래서...0
반환값은 고장 또는 위조값으로 취급해서는 안 됩니다.즉, 다음과 같은 표현을 사용하지 않도록 주의하십시오.
// Do not do this:
if (!$dbh->exec("CREATE USER 'usr'@'localhost' IDENTIFIED BY 'Pass100'")) {
// Handle error
}
대신 엄밀한 비교를 사용합니다.===
을 검사하다FALSE
반품:
if ($dbh->exec("CREATE USER 'usr'@'localhost' IDENTIFIED BY 'Pass100'") === FALSE) {
// Handle error
}
사용자가 이미 존재하거나 사용자가 사용자를 생성할 권한이 없는 경우 등 사용자 작성 시 오류가 발생하면 MariaDB는 이를 오류로 보고하여 다음과 같은 문제가 발생합니다.PDO::exec()
돌아오다FALSE
정수 대신0
, 또는 이 설정이 끝난 경우는 예외를 슬로우 합니다.$dbh
위해서PDO::ERRMODE_EXCEPTION
.
언급URL : https://stackoverflow.com/questions/30511407/mysql-create-drop-user-returns-0
반응형
'itsource' 카테고리의 다른 글
문자열이 JS의 regex와 일치하는지 확인합니다. (0) | 2022.09.13 |
---|---|
query Selector 및 query SelectorJavaScript의 모든 vs getElementsByClassName 및 getElementById (0) | 2022.09.13 |
요소를 어레이에 특정 위치에 삽입하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
MySQL과 다른 MariaDB 프로토콜 문서를 찾을 수 있는 위치 (0) | 2022.09.13 |
MySQL 쿼리의 WHERE 절에서 열 별칭을 사용하면 오류가 발생합니다. (0) | 2022.09.13 |