English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_sqlstate() 함수는 마지막 오류의 SQLSTATE 오류 코드를 반환합니다.
mysqli_sqlstate()함수는 마지막 SQL 작업의 오류를 나타내는 SQLSTATE 오류 코드를 포함한 문자열을 반환합니다. 오류 코드는 5 개 문자로 구성되며, '00000'은 오류가 발생하지 않았음을 의미합니다. 오류 코드는 ANSI SQL 및 ODBC에서 정의되었습니다.
주의: 모든 MySQL 오류가 SQLSTATE에 맵핑되지 않는다는 것을 주의해야 합니다. 맵핑되지 않은 오류 메시지는 HY000(통합 오류)로 표시됩니다.
mysqli_sqlstate($con)
순번 | 매개변수 및 설명 |
---|---|
1 | con(必需) MySQL 서버와의 연결을 나타내는 객체입니다. |
PHP mysqli_sqlstate() 함수는 마지막 MySQL 작업 중 발생한 SQLSTATE 오류를 나타내는 문자열 값을 반환합니다. 오류가 없으면 이 함수는00000.
이 함수는 PHP 버전5에서 도입되었으며 모든 높은 버전에서 사용할 수 있습니다.
다음 예제는mysqli_sqlstate()함수의 사용법(과정 지향 스타일)-
<?php //연결을 설정합니다 $con = mysqli_connect("localhost", "root", "password", "mydb"); //테이블의 모든 레코드를 검색하는 쿼리 mysqli_query($con, "Select * from WrongTable"); //SQL State $state = mysqli_sqlstate($con); print("SQL 상태 오류: ". $state); //연결 닫기 mysqli_close($con); ?>
출력 결과
SQL 상태 오류: 42S02
객체 지향 스타일에서 이 함수의 문법은 다음과 같습니다$con-> sqlstate다음은 이 함수의 객체 지향 스타일 예제입니다-
<?php //연결을 설정합니다 $con = new mysqli("localhost", "root", "password", "mydb"); //employee 테이블의 모든 레코드를 검색하는 쿼리 $con -> query("Select FIRST_NAME, LAST_NAME, AGE from employee"); //SQL State $state = $con-> sqlstate; print("SQL 상태 오류: ". $state); //연결 닫기 $con -> close(); ?>
출력 결과
SQL 상태 오류: 42000
다음은mysqli_sqlstate()함수의 다른 예제-
<?php //연결을 설정합니다 $con = mysqli_connect("localhost", "root", "password", "mydb"); //employee 테이블의 모든 행을 선택하는 쿼리를 검색합니다 mysqli_query($con, "SELECT * FROM employee"); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //employee 테이블의 행을 업데이트하는 쿼리를 검색합니다 mysqli_query($con, "UPDATE employee SET INCOME=INCOME+5000 WHERE FIRST_NAME IN (*); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //employee 테이블에 행을 삽입하는 쿼리를 검색합니다 mysqli_query($con, "INSERT INTO employee VALUES (Archana, 'Mohonthy', 30, 'M', 13000, 106); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //연결 닫기 mysqli_close($con); ?>
출력 결과
SQL State Error: 00000 SQL State Error: 42000 SQL State Error: 42S22
최근 MySQL 작업의 SQLSTATE 오류 코드를 반환합니다:
<?php $connection_mysql = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection_mysql)){ echo "MySQL 연결 실패: ". mysqli_connect_error(); } //가정해 보면 mydb 데이터베이스에 Persons 이름의 테이블이 이미 존재합니다 $sql = "CREATE TABLE Persons (Firstname VARCHAR(30),Lastname VARCHAR(30),Age INT)"; if (!mysqli_query($connection_mysql,$sql)){ echo "SQLSTATE error: ". mysqli_sqlstate($connection_mysql); } mysqli_close($connection_mysql); ?>
출력 결과
SQLSTATE error: 42S01