이 글은 주로 PHP에서 mysqli 데이터베이스를 조작하는 방법을 소개하고 있으니 관심있는 친구들이 참고하시면 좋을 것 같습니다.
Mysql(i) 지원은 php5.0부터 추가되었으며, 새로운 기능이 객체 형태로 추가되었습니다.
i는 향상된 기능, 고효율 및 안정성을 의미합니다.
컴파일 시간 매개변수:
./configure --with-mysql=/usr/bin/mysql_config \ #使用 Mysql ClientLibrary(libmysql)构建 --with-mysqli=mysqlnd \ #使用 Mysql Native Dirver 即mysqlnd --with-pdo-mysql=mysqlnd #使用 Mysql Native Dirver 即mysqlnd
저작권 문제로 인해 php5.3부터 PHP는 libmysql.dll을 대체하기 위해 mysqlnd를 사용하기 시작했습니다.
mysqlnd는 zend 사에서 개발한 mysql 데이터베이스 드라이버로 원본에 비해 모든 면에서 개선되었습니다
# mysqlnd
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 加上你的参数
로 컴파일
mysqli 프로세스 및 객체 모드는 모두
mysqli에서 제공하는 세 가지 클래스를 지원합니다:
1, mysqli 및 연결 관련
2, MySQLi_Result 처리 결과 세트
3, mysqli_stm 전처리하지 않음 class
#Settings 문자 집합
set_charset
# 문자 집합 가져오기
character_set_name
데이터베이스 개체 가져오기
//创建mysqli对象方式 1 //屏蔽连接产生的错误 $mysqli = new mysqli('127.0.0.1', 'root', '', 'test'); //只能用函数来判断是否连接成功 if(mysqli_connect_errno()) { echo mysqli_connect_error(); } //创建mysqli对象方式 2 可以设置一些参数 $mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间 $mysqli->real_connect('127.0.0.1', 'root', '', 'test');
query: 실패 시 false를 반환하고, select는 결과 집합 개체를 성공적으로 반환하고, 다음을 반환합니다. false가 아니면 true입니다. 이는 SQL 실행이 성공했음을 의미합니다.
결과 집합 없음 예
$mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间 $mysqli->real_connect('127.0.0.1', 'root', '', 'test'); $sql = "insert into limove(`name`, `order`) values('aa', 11)"; $rst = $mysqli->query($sql); $sql = "delete from limove where id = 221"; $rst = $mysqli->query($sql); if($rst === false) { ee($mysqli->errno); ee($mysqli->error); } #影响条数 ee($mysqli->affected_rows); #插入的id ee($mysqli->insert_id); ee($mysqli);
결과 집합 포함
$mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间 $mysqli->real_connect('127.0.0.1', 'root', '', 'test'); $sql = "select * from limove as limove_as"; $result = $mysqli->query($sql); if($result === false) { ee($mysqli->errno); ee($mysqli->error); } #行数 ee($result->num_rows); #列数 ee($result->field_count); #字段个数 ee($result->field_count); #获取所有字段的信息 $field_arr = $result->fetch_fields(); #移动字段的指针 // $result->field_seek(1); #依次获取字段的信息 while($field = $result->fetch_field()) { ee($field); } #移动记录指针 $result->data_seek(1); #一次获取所有数据 $data = $result->fetch_all(MYSQLI_ASSOC); #关联数组方式获取结果集 $data = array(); $result->data_seek(0); #重置指针到起始 while($row = $result->fetch_assoc()) { $data[] = $row; } ee($data); $result->free(); $mysqli->close();
한 번에 여러 문 실행 다중 쿼리(권장하지 않음)
결과 집합이 없습니다. 현재는 영향을 받은_행이 마지막으로 영향을 받은 항목의 수만 가져올 수 있습니다.
$mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间 $mysqli->real_connect('127.0.0.1', 'root', '', 'test'); $sql_arr = array( 'insert into limove(id,`name`, `order`) values(null, 1, 2)', 'insert into limove(id,`name`, `order`) values(null, 1, 222)', 'delete from limove where `order` = 2', ); $sql = implode(';', $sql_arr); $result = $mysqli->multi_query($sql); if($result === false) { ee($mysqli->errno); ee($mysqli->error); } $mysqli->close();
결과 집합이 있습니다
$mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间 $mysqli->real_connect('127.0.0.1', 'root', '', 'test'); $sql_arr = array( 'show tables', 'desc select * from limove', 'show create table limove', ); $sql = implode(';', $sql_arr); $rst = $mysqli->multi_query($sql); if($rst === false) { ee($mysqli->errno); ee($mysqli->error); } do{ $result = $mysqli->store_result();#获取当前光标所在的结果集 $data = $result->fetch_all(); ee($data); }while($mysqli->next_result());#光标移动到下一个结果集 $mysqli->close();
트랜잭션 처리:
rr 리mysqli 전처리 클래스(권장): 서버는 sql을 한 번만 컴파일합니다.
장점: 높은 효율성에 적합합니다. 문은 동일하지만 데이터가 다른 상황은 SQL 주입 생성을 방지할 수 있습니다.
mysqli_stmt 예: 비select 문$mysqli=new mysqli("localhost", "root", "123456", "xsphpdb"); //事务处理 $mysqli->autocommit(0); $error=true; $price=50; $sql="update zh set ye=ye-{$price} where name='zhangsan'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo "从张三转出失败 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo "张三的钱没有变化"; }else{ echo "从张三账号中转出成功! "; } } $sql="update zh set ye=ye+{$price} where name='lisi1'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo "从李四转入失败 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo "李四的钱没有变化"; }else{ echo "向李四账号中转入成功! "; } } if($error){ echo "转账成功!"; $mysqli->commit(); }else{ echo "转账失败!"; $mysqli->rollback(); } $mysqli->autocommit(1); $mysqli->close();mysqli_stmt 예: select 문 1
require 'fns.php'; //创建mysqli对象方式 $mysqli = @new mysqli('127.0.0.1', 'root', '', 'test'); //只能用函数来判断是否连接成功 if(mysqli_connect_errno()) { echo mysqli_connect_error(); die; } $mysqli->set_charset('utf8'); $sql = "insert into limove values(?, ?, ?)"; //语句一样值不相同情况 //mysqli中有直接的方法可用 $stmt = $mysqli->prepare($sql); //绑定参数 $stmt->bind_param('iss', $id, $name, $order); for($i=0;$i<5;$i++){ $id = 0; $name = 'name'; $order = mt_rand(1, 1000); $stmt->execute(); } //最后id ee($stmt->insert_id); //影响的行数 注:最后一条执行的 ee($stmt->affected_rows); //错误号 ee($stmt->errno); //错误信息 ee($stmt->error); //stmt对象中可以看到更多的信息 ee($stmt); eee($mysqli);
요약: 위 내용은 이 글의 전체 내용입니다. 학습하는 모든 분들에게 도움이 되길 바랍니다.
관련 권장사항:
1주일 이내에 자동 로그인 저장 메커니즘을 구현하려면php를 사용하세요.
php을 사용하여 서버와 웹 만들기 프런트엔드 인터페이스 Interact
위 내용은 PHP를 사용하여 mysqli 데이터베이스를 조작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 PHP Data Objects (PDO)에 대해 설명합니다. PHP의 데이터베이스 액세스 확장. 데이터베이스 추상화 및 더 나은 오류 처리를 포함하여 준비된 진술과 MySQLI에 대한 이점을 통해 보안을 향상시키는 데 PDO의 역할을 강조합니다.

Memcache 및 Memcached는 데이터베이스로드를 줄임으로써 웹 앱을 속이는 PHP 캐싱 시스템입니다. 신중한 키 관리가있는 프로젝트간에 단일 인스턴스를 공유 할 수 있습니다.

기사는 PHP를 사용하여 MySQL 데이터베이스를 생성하고 관리하는 단계에 대해 논의하고 연결, 생성, 일반적인 오류 및 보안 측정에 중점을 둡니다.

이 기사는 다른 환경으로 인해 JavaScript와 PHP가 HTTP 요청을 통해 간접적으로 상호 작용하는 방법에 대해 설명합니다. JavaScript에서 PHP로 데이터를 전송하는 방법을 다루고 데이터 검증 및 PROT와 같은 보안 고려 사항을 강조합니다.

Pear는 재사용 가능한 구성 요소를위한 PHP 프레임 워크로, 패키지 관리, 코딩 표준 및 커뮤니티 지원으로 개발을 향상시킵니다.

PHP는 주로 웹 개발에 사용되는 다목적 스크립팅 언어로 동적 페이지를 만듭니다. 명령 줄 스크립팅, 데스크탑 앱 및 API 개발에도 활용할 수 있습니다.

이 기사는 1995 년 "개인 홈페이지 도구"에서 1998 년 "PHP : HyperText Preprocessor"에 이르기까지 PHP의 진화에 대해 논의하며, 개인 웹 사이트를 넘어 확장 된 사용을 반영합니다.

세션 고정 공격을 방지하는 효과적인 방법은 다음과 같습니다. 1. 사용자 로그인 한 후 세션 ID 재생; 2. 보안 세션 ID 생성 알고리즘을 사용하십시오. 3. 세션 시간 초과 메커니즘을 구현하십시오. 4. HTTPS를 사용한 세션 데이터를 암호화합니다. 이러한 조치는 세션 고정 공격에 직면 할 때 응용 프로그램이 파괴 할 수 없도록 할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
