mysqli 확장을 사용하면 MySQL 4.1 이상에서 제공되는 기능에 액세스할 수 있습니다.
mysqli 확장 및 영구 연결
mysqli 확장의 영구 연결은 PHP5.3에서 도입되었습니다. PDO MYSQL 및 ext/mysql에는 이미 지원이 있습니다. 지속적인 연결의 기본 개념은 클라이언트 프로세스와 데이터베이스 간의 연결이 여러 번 생성되고 삭제되는 대신 클라이언트 프로세스를 통해 유지되고 재사용될 수 있다는 것입니다. 이렇게 하면 매번 새 연결을 생성해야 하는 오버헤드가 줄어들고 사용하지 않는 연결은 캐시되어 재사용할 수 있습니다.
mysql 확장과 달리 mysqli는 영구 연결을 여는 특별한 방법을 제공하지 않습니다. 지속적인 연결을 열어야 하는 경우 연결할 때 호스트 이름 앞에 p:를 추가해야 합니다.
지속적인 연결을 사용할 때의 문제점은 클라이언트 측에서 예측할 수 없는 상태에 있을 수 있다는 것입니다. 예를 들어 클라이언트가 예기치 않게 종료되기 전에 테이블 잠금이 활성화될 수 있습니다. 영구 연결을 재사용하는 새 클라이언트 프로세스는 연결을 "있는 그대로" 얻습니다. 이러한 방식으로 새 클라이언트 프로세스는 지속적인 연결을 더 잘 사용하기 위해 가능한 모든 정리 작업을 수행해야 하므로 프로그래머의 부담이 늘어납니다.
mysqli 확장의 영구 연결은 내장된 정리 처리 코드를 제공합니다. mysqli가 수행하는 정리 작업에는 다음이 포함됩니다.
활성 트랜잭션 롤백
임시 테이블 닫기 및 삭제
테이블 잠금 해제,
세션 변수 재설정
준비된 문을 닫습니다(PHP에서 자주 발생함)
Close 핸들러
GET_LOCK()을 통해 획득한 잠금을 해제합니다.
이렇게 하면 연결이 지속적으로 유지됩니다. 풀에서 반환된 연결은 클라이언트 프로세스가 사용하기 전에는 깨끗한 상태입니다.
mysqli 확장은 C-API 함수 mysql_change_user()를 자동으로 호출하여 이 정리 작업을 완료합니다.
자동 청소 기능에는 장점과 단점이 있습니다. 장점은 추가 정리 코드가 자동으로 호출되기 때문에 프로그래머가 더 이상 걱정할 필요가 없다는 것입니다. 그러나 단점은 연결 풀에서 연결이 반환될 때마다 정리 코드를 실행해야 하기 때문에 코드가 잠재적으로 느려질 수 있다는 것입니다.
이 자동 정리 코드는 PHP 컴파일 시 MYSQLI_NO_CHANGE_USER_ON_PCONNECT를 정의하여 끌 수 있습니다.
Mysqli 확장은 Mysql 네이티브 드라이버 또는 Mysql 클라이언트 라이브러리(libmysql)를 사용할 때 영구 연결을 지원합니다.
MySQLi 클래스
는 PHP와 MySQL 데이터베이스 간의 연결을 나타냅니다.
mysqli::$affected_rows — 이전 MySQL 작업에서 영향을 받은 행 수를 가져옵니다.
mysqli::autocommit — 이 데이터베이스 연결의 자동 명령 커밋 트랜잭션 모드를 켜거나 끕니다.
mysqli::begin_transaction — 트랜잭션 시작
mysqli::change_user — 지정된 데이터베이스 연결의 사용자 변경
mysqli::character_set_name — 현재 데이터베이스의 기본 문자 인코딩을 반환합니다. 데이터베이스 연결
mysqli::$client_info — MySQL 클라이언트 정보 가져오기
mysqli::$client_version — MySQL 클라이언트 버전을 문자열로 반환
mysqli::close — 닫기 이전에 열린 데이터베이스 연결
mysqli::commit — 트랜잭션 커밋
mysqli::$connect_errno — 마지막 연결 호출에서 오류 코드를 반환
mysqli::$connect_error — 마지막 연결 오류에 대한 문자열 설명을 반환합니다.
mysqli::__construct — MySQL 서버에 대한 새 연결을 엽니다.
mysqli::debug — 디버깅 작업을 수행합니다
mysqli ::dump_debug_info — 로그에 디버깅 정보 출력
mysqli::errno — 가장 최근 함수 호출의 오류 코드를 반환합니다.
mysqli::$error_list — 로그에서 오류 목록을 반환합니다. 마지막 명령 실행
mysqli::$error — 마지막 오류에 대한 문자열 설명을 반환합니다.
mysqli::$field_count — 가장 최근 쿼리에 대한 열 수를 반환합니다
mysqli::get_charset — 문자 세트 객체를 반환합니다
mysqli::get_client_info — MySQL 클라이언트 정보 가져오기
mysqli_get_client_stats — 클라이언트 프로세스별 통계를 반환합니다
mysqli_get_client_version — MySQL 클라이언트 버전(정수)
mysqli::get_connection_stats — 클라이언트 연결에 대한 통계를 반환합니다
mysqli::$host_info — 사용된 연결 유형을 나타내는 문자열을 반환합니다
mysqli::$protocol_version — 사용된 MySQL 프로토콜의 버전을 반환합니다.
mysqli::$server_info — MySQL 서버의 버전을 반환합니다.
mysqli::$server_version — MySQL의 버전을 반환합니다. 정수형 MySQL 서버
mysqli::get_warnings — SHOW WARNINGS 결과 가져오기
mysqli::$info — 가장 최근에 실행된 쿼리에 대한 정보를 검색합니다
mysqli:: init — MySQLi를 초기화하고 mysqli_real_connect()와 함께 사용할 리소스를 반환합니다
mysqli::$insert_id — 마지막 쿼리에 사용된 자동 생성 ID를 반환합니다.
mysqli::kill — 서버에 MySQL 스레드를 종료하도록 요청
mysqli::more_results — 확인 다중 쿼리의 쿼리 결과가 더 있는 경우
mysqli::multi_query — 데이터베이스에 대한 쿼리 수행
mysqli::next_result — multi_query의 다음 결과 준비
mysqli::options — 옵션 설정
mysqli::ping — 서버 연결을 핑하거나 연결이 끊어진 경우 다시 연결을 시도합니다
mysqli::poll — 연결 폴링
mysqli::prepare — 실행을 위한 SQL 문 준비
mysqli::query — 对数据库执行一次查询
mysqli::real_connect — mysql 서버에 대한 연결을 엽니다
mysqli::real_escape_string — 연결의 현재 문자 집합을 고려하여 SQL 문에 사용하기 위해 문자열의 특수 문자를 이스케이프합니다.
mysqli::real_query — 执行一个mysql查询
mysqli::reap_async_query — 비동기 쿼리에서 결과 가져오기
mysqli::refresh — 새로 고침
mysqli::release_savepoint — 명명된 저장 지점으로 트랜잭션을 롤백합니다
mysqli: :rollback — 回退当前事务
mysqli::rpl_query_type — RPL 쿼리 유형 반환
mysqli::savepoint — 명명된 트랜잭션 저장점 설정
mysqli::select_db — 选择用于数据库查询的默认数据库
mysqli::send_query — 发送请求并返回结果
mysqli::set_charset — 设置默认字符编码
mysqli::set_local_infile_default — 설정 해제 로컬 infile 로드 명령에 대한 사용자 정의 핸들러
mysqli::set_local_infile_handler — LOAD DATA LOCAL INFILE 명령에 대한 콜백 함수 설정
mysqli::$sqlstate — 이전 MySQL 작업에서 SQLSTATE 오류를 반환합니다
mysqli::ssl_set — SSL을 사용하여 보안 연결을 설정하는 데 사용
mysqli::stat — 현재 시스템 상태 가져오기
mysqli::stmt_init — 初始化一条语句并返回一个용于mysqli_stmt_prepare(调사용)적对象
mysqli::store_result — 마지막 쿼리에서 결과 집합을 전송합니다
mysqli::$thread_id — 현재 연결에 대한 스레드 ID를 반환합니다
mysqli::thread_safe — 返回是否是线程안전한
mysqli::use_result — 결과 집합 검색 시작
mysqli::$warning_count — 마지막 쿼리에서 경고 수를 반환합니다. 주어진 링크에 대해
MySQLi_STMT类
代表一个prepared语句。
mysqli_stmt::$affected_rows — 마지막 링크에 의해 변경, 삭제 또는 삽입된 총 행 수를 반환합니다. 실행된 문
mysqli_stmt::attr_get — 문 속성의 현재 값을 가져오는 데 사용됩니다.
mysqli_stmt::attr_set — 준비된 문의 동작을 수정하는 데 사용됩니다.
mysqli_stmt ::bind_param — 변수를 준비된 문에 매개변수로 바인딩
mysqli_stmt::bind_result — 변수를 결과 저장을 위해 준비된 문에 바인딩
mysqli_stmt::close — 준비된 문을 닫습니다
mysqli_stmt::data_seek — 명령문 결과 세트에서 임의의 행을 검색합니다
mysqli_stmt::$errno — 가장 최근 명령문 호출에 대한 오류 코드를 반환합니다
mysqli_stmt::$error_list — 마지막으로 실행된 문에서 오류 목록을 반환
mysqli_stmt::$error — 마지막 문 오류에 대한 문자열 설명 반환
mysqli_stmt::execute — 준비된 쿼리 실행
mysqli_stmt::fetch — 준비된 문의 결과를 바인딩된 변수로 가져옵니다
mysqli_stmt::$field_count — 주어진 문의 필드 수를 반환합니다
mysqli_stmt::free_result — 해제 주어진 명령문 핸들에 대한 저장된 결과 메모리
mysqli_stmt::get_result — 준비된 명령문에서 결과 세트 가져오기
mysqli_stmt::get_warnings — SHOW WARNINGS 결과 가져오기
mysqli_stmt ::$insert_id — 이전 INSERT 작업에서 생성된 ID 가져오기
mysqli_stmt::more_results — 다중 쿼리에서 추가 쿼리 결과가 있는지 확인
mysqli_stmt::next_result — 다음을 읽습니다. 다중 쿼리의 결과
mysqli_stmt::$num_rows — 명령문의 행 수를 반환합니다 결과 집합
mysqli_stmt::$param_count — 주어진 명령문에 대한 매개변수 수를 반환합니다
mysqli_stmt::prepare — 실행을 위한 SQL 문 준비
mysqli_stmt::reset — 준비된 문 재설정
mysqli_stmt::result_metadata — 준비된 문에서 결과 세트 메타데이터 반환
mysqli_stmt::send_long_data — 블록 단위로 데이터 보내기
mysqli_stmt::$sqlstate — 이전 문 작업에서 SQLSTATE 오류를 반환합니다.
mysqli_stmt::store_result — 준비된 명령문에서 결과 집합을 전송합니다. 성명
mysqli_result类
代表从一个数据库查询中获取的结果集
mysqli_result::$current_field — 결과 포인터의 현재 필드 오프셋 가져오기
mysqli_result: : data_seek — 결과 포인터를 결과의 임의 행으로 조정
mysqli_result::fetch_all — 모든 결과 행을 연관 배열, 숫자 배열 또는 둘 다로 가져옵니다
mysqli_result::fetch_array — 결과 행을 연관 배열, 숫자 배열 또는 둘 다로 가져옵니다
mysqli_result::fetch_assoc — 결과 행을 연관 배열로 가져옵니다
mysqli_result::fetch_field_direct — 메타 데이터 가져오기 단일 필드
mysqli_result::fetch_field — 결과 집합의 다음 필드를 반환합니다
mysqli_result::fetch_fields — 결과 집합의 필드를 나타내는 객체 배열을 반환합니다
mysqli_result::fetch_object — 결과 집합의 현재 행을 객체로 반환
mysqli_result::fetch_row — 결과 행을 열거형 배열로 가져오기
mysqli_result::$field_count — 숫자 가져오기 결과의 필드
mysqli_result::field_seek — 결과 포인터를 지정된 필드 오프셋으로 설정
mysqli_result::free — 결과와 관련된 메모리를 해제합니다
mysqli_result: :$lengths — 결과 집합에서 현재 행의 열 길이를 반환합니다.
mysqli_result::$num_rows — 결과의 행 수를 가져옵니다
MySQLi_Driver类
MySQLi 驱动.
client_info
客户端API头版本(比如:(string)"5.1.49")
client_version
客户端版本(比如:(int)50149)
driver_version
Mysqli驱动版本(比如:(int)101009 )
임베디드
是否开启了MySQLi嵌入式支持。
다시 연결
MySQLi_Warning类
代表一个Mysql警告。
메시지
消息字符串
sqlstate SQL状态errno
mysqli_warning::next — 다음 목적
mysqli_sql_Exception类
mysqli异常处理类
别name 和过时的Mysqli 函数mysqli_bind_param — mysqli_stmt_bin d_param의 이름 mysqli_bind_result — mysqli_stmt_bind_result의 이름mysqli_client_encoding — mysqli_character_set_name의 이름mysqli_sql_exception extends RuntimeException { /* 属性 */ protected string $sqlstate ; /* 继承的属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; }
mysqli_connect — 别명 mysqli::__construct
mysqli::disable_reads_from_ 마스터 - 마스터에서 읽기 비활성화
mysqli_disable_rpl_parse — 禁用RPL解析
mysqli_enable_reads_from_master — 开启从主机读取
mysqli_enable_rpl_parse — 开启RPL解析
mysqli_escape_string — 别name mysqli_real_escape_string
mysqli_execute — mysqli_stmt_execute의 别명
mysqli_fetch — mysqli_stmt_fetch적 이름.
mysqli_get_cache_stats — 返回客户端Zval缓存统计信息
mysqli_get_metadata — mysqli_st mt_result_metadata의 이름
mysqli_master_query — 主/从机system中强제에서는 主机中执行一个查询
mysqli_param_count — mysqli_stmt_param_count별 이름
mysqli_report — 开启或禁用(Mysql)内部(错误)报告函数
mysqli_rpl_parse_enabled — 检查是否开启了RPL解析
mysqli_rpl_probe — RPL探测
mysqli_send_long_data — mysqli_stmt_send_long_data의 이름
mysqli_set_opt — mysqli_options적别name
mysqli_slave_query — 主/从机system中强机上执行一个查询