3분 안에 PHP의 MySQLi를 이해하도록 안내합니다.
이 글부터 MySQLi 확장에 대해 배워보겠습니다. MySQL(원래) 확장은 우리 중 많은 사람들이 처음 PHP를 배우기 시작할 때 데이터베이스에 연결하는 입문 교사라고 할 수 있습니다. 이제 절차적 코드를 사용하여 데이터베이스를 작동하려면 mysqli 확장만 사용할 수 있습니다.
이 글을 시작으로 PDO 외에 핵심 MySQLi 확장인 또 다른 MySQL 확장에 대한 학습을 마쳤습니다. 아마도 그 조상인 MySQL(원래) 확장은 우리 중 많은 사람이 PHP를 처음 배우기 시작했을 때 데이터베이스 연결을 위한 필수 가이드였습니다. 그러나 시대가 변하면서 MySQL(원본) 확장은 PHP7에서 완전히 폐기되었습니다. 이제 절차적 코드를 사용하여 데이터베이스를 작동하려면 mysqli 확장만 사용할 수 있습니다. 물론, mysqli 확장은 객체 지향 쓰기도 지원합니다.
MySQLi란 무엇입니까
MySQLi 확장을 사용하면 MySQL4.1 이상 데이터베이스에서 제공되는 기능에 액세스할 수 있습니다. 이는 다른 DNS를 통해 다른 데이터베이스에 연결할 수 있는 PDO와 달리 MySQL 데이터베이스를 특별히 대상으로 합니다.
MySQL과 PDO의 차이점과 연관성
우선, 최초의 MySQL 확장을 검토해 보겠습니다.
프로시저에만
저장 프로시저, 다중 문 실행, 준비된 문을 지원하지 않습니다.
PHP7이 삭제되어 전혀 지원되지 않습니다
PDO
만 지원됩니다. 객체 메소드를 사용하면
다양한 데이터베이스에 연결할 수 있으며, 데이터베이스를 전환하면 변경 사항이 줄어들고 코드를 수정할 필요조차 없을 수도 있습니다.
저장 프로시저, 다중 문 실행, 준비된 문 지원
마지막은 MySQLi입니다.
객체 지향 및 프로세스 지향 작성 방법 모두 지원
MySQL 데이터베이스만 지원
저장 프로시저, 다중 명령문 실행, 준비된 명령문 지원
PHP 및 MySQL의 버전 업데이트를 따르세요. , 업데이트할 수 있습니다. 더 많은 MySQL 고급 기능을 빠르게 지원합니다.
이 세 가지 기능으로 판단하면 MySQL(원본) 확장은 PDO 또는 MySQLi의 PHP 버전을 지원하는 한 오래된 프로젝트에서도 권장되지 않습니다. 데이터베이스 연결을 이 두 가지 방법 중 하나로 변환하는 것을 고려해야 합니다. PHP5 환경에서 MySQL(원래) 확장 기능을 사용하는 방법을 아직 배우고 있다면 내려놓으셔도 됩니다.
PDO와 MySQLi 사이의 선택은 보는 사람에 따라 다릅니다. 실제로 둘 사이에는 큰 차이가 없지만 현대의 대규모 프레임워크는 기본적으로 PDO를 기본 데이터베이스 연결로 캡슐화합니다. 결국 PDO의 이식성은 이러한 일반 프레임워크를 다른 데이터베이스에 연결하는 것을 용이하게 할 수 있습니다. 일부 소규모 프레임워크나 프로젝트에서는 여전히 MySQLi를 볼 수 있습니다.
물론, 틈새 시장이 나쁜 것은 아닙니다. 일상적인 개발과 마찬가지로 PHP 환경에서는 다른 데이터베이스를 거의 사용하지 않으므로 자체 소규모 프로젝트에서는 데이터베이스를 운영하기 위해 MySQLi 세트를 완전히 사용하는 것이 더 편리할 것입니다. 편리하고 빠릅니다. 동시에 이전 프로젝트가 PHP7 버전으로 전환하려는 경우, 이전에 연결된 MySQL(원본) 데이터베이스를 사용했다면 MySQL(원본) 코드를 MySQLi로 빠르게 교체할 수 있습니다.
확장 설치 및 MySQL8 관련 참고 사항
MySQLi 확장은 PHP 소스 코드와 함께 출시됩니다. PHP를 컴파일할 때 --with-mysqli만 추가하면 됩니다. 이제 기본 데이터베이스 드라이버는 mysqlnd를 사용하며 libmysql은 기본적으로 제거되었습니다. 따라서 컴파일 시 다른 매개변수를 추가할 필요 없이 직접 컴파일하면 됩니다.
MySQL8 서버는 기본적으로 caching_sha2_password를 비밀번호 암호화로 사용하므로 MySQL8에 연결할 때 주의가 필요합니다. PHP7.2.4 이전 버전의 MySQLi는 mysql_native_password를 사용하여 연결 비밀번호를 암호화하므로 데이터베이스에 연결할 수 없게 됩니다. my.cnf 파일을 수정하고 default_authentication_plugin=mysql_native_password를 설정하면 MySQL8도 mysql_native_password를 사용하여 사용자 비밀번호를 암호화할 수 있습니다.
프로시저 지향
위에서 언급했듯이 MySQLi는 객체 지향과 프로시저 지향이라는 두 가지 쓰기 방법을 지원합니다. 간단히 이해하자면 작성 방법 중 하나는 MySQL(원래) 확장이고 다른 작성 방법은 PDO와 유사하다는 것입니다. 먼저 과정 지향적 글쓰기를 살펴보겠습니다.
$mysqli = mysqli_connect("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = mysqli_fetch_assoc($res); print_r($row);
MySQL(원본) 확장 코드를 이식하는 것이 정말 편리하다고 생각하지 않나요? 모든 메소드 이름을 mysqli_xxx로 변경하면 됩니다.
객체 지향
객체 지향은 PDO와 약간 비슷합니다. 먼저 연결 핸들 클래스를 얻은 다음 이 클래스를 작동해야 합니다.
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = $mysqli->query("SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
面向对象和面向过程混用
另外,这两种方式还可以混合使用,不过并不推荐。混合起来使用的话很容易让看代码的人晕头转向。所以,最好还是在一个项目中就坚持使用一种方式。
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
在这段代码中,我们实例化了一个 mysqli 对象,然后使用面向过程的 mysqli_query() 函数来执行语句,接着又使用面向对象的方式来获取结果集。是不是很乱?但是它是可以正常运行的。
总结
从上面的内容中可以看出,PDO 的特点是支持多种不同类型的数据库,就像 Java 中的 JDBC 一样。而 MySQLi 虽然只支持 MySQL 数据库,但它却可以同时支持面向对象和面向过程两种写法。是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。
测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/4.PHP中的MySQLi扩展学习(一)MySQLi介绍.php
推荐学习:php视频教程
위 내용은 3분 안에 PHP의 MySQLi를 이해하도록 안내합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
