본 글에서는 주로 PHP+MariaDB 데이터베이스 운용의 기본 기술을 소개하며, PHP+MariaDB 데이터베이스 연결과 판단을 예시 형태로 요약 분석하고, 사용자 로그인, 관리, 삭제 등의 구현 기술과 주의사항을 설명합니다. 관련 작업은 PHP+MariaDB를 기반으로 합니다. 친구는
을 참조할 수 있습니다. 이 기사의 예는 PHP+MariaDB 데이터베이스 작업의 기본 기술을 요약합니다. 참고하실 수 있도록 자세한 내용은 다음과 같습니다.
PHP+MySQL은 비교적 흔한 조합입니다. 저는 주관적으로 오라클을 좋아하지 않기 때문에, 오라클에 MySQL을 인수한 후 뼈에 약간의 변화가 생겼습니다. , 그래서 저는 여전히 MySQL의 원래 오픈 소스 신념을 고수하는 MariaDB로 변경했습니다. 본질적으로 MySQL의 핵심이므로 다음 데이터베이스 작업 코드는 모두 MySQL에서 직접 사용할 수 있습니다.
PHP+Apache 기본 환경을 설정하고 밤에 MySQL 데이터베이스를 설치한 후 가장 간단한 데이터베이스 연결 코드를 작성했는데 그 결과 다음과 같은 고전적인 오류가 발생했습니다. 치명적인 오류: 'mysqli' 클래스를 찾을 수 없음
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } ?>
사실 이 문제는 비교적 간단합니다. PHP 엔진에서 반환되는 오류를 통해 우리는 mysqli가 올바르게 로드되지 않았음을 알 수 있습니다. 대부분의 문제는 php.ini 파일 "extension"의 구성에서 발생합니다. =php_mysqli.dll" 이 구성 항목 앞의 기본 세미콜론은 제거되지 않습니다. 저는 이런 실수를 한 것이 아닙니다. PHP 설치 경로의 ext 디렉토리에도 php_mysqli.dll 파일이 있습니다. 그러면 문제가 발생한 곳은 어디입니까? 문제는 php.ini 파일의 잘못된 위치에서 계속 발생해야 합니다. 좀 읽어본 결과 "extension_dir = "ext""이 수정되지 않은 것을 발견했습니다. 당시에는 PHP 엔진이 자동으로 이 상대 경로를 찾을 수 있다고 생각해서 그것에 대해 많이 생각하지 않았습니다. 그런데 생각해 보니 PHP 엔진은 Apache에 의해 로드되고 Apache는 이러한 상대적 관계를 알지 못합니다. 이 위치를 절대 경로로 변경해 보겠습니다. 그러면 괜찮습니다. 실제로 이 코드를 작성하기 전에 mysqli 구성 요소가 로드되었는지 확인할 수 있습니다. 이 방법은 다른 구성 요소를 미리 로드하는 데 적합합니다.
if (extension_loaded('mysqli')) { echo 'yes'; } else { echo 'no'; }
다음은 사용자 등록과 시스템 로그인을 이용하여 PHP+MySQL의 가장 기본적인 동작 방법을 기록합니다.
1. 데이터베이스, 테이블 및 사용자를 생성합니다.
DROP DATABASE IF EXISTS `test`; CREATE DATABASE `test` USE `test`; DROP TABLE IF EXISTS `tbl_user`; CREATE TABLE `tbl_user` ( `username` varchar(32) NOT NULL default '', `password` varchar(32) NOT NULL default '', PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
2. 각각 Register.html 및 login.html인 등록 및 로그인 HTML 페이지를 만듭니다. 아래 그림과 같습니다:
3. 등록 및 로그인 코드:
register_do.php
<?php $username = $_POST['username']; $password = $_POST['password']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "select * from tbl_user where username = '" . $username . "'"; echo '<p>' . $query; $result = $db->query($query); if ($result) { echo '<p>' . 'The user '. $username .' exist'; echo '<p>' . '<a href="register.html" rel="external nofollow" rel="external nofollow" >Back to register</a>'; } else { $query = "insert into tbl_user values ('". $username ."', '". $password ."')"; echo '<p>' . $query; $result = $db->query($query); if ($result) { echo '<p>' . '<a href="register.html" rel="external nofollow" rel="external nofollow" >Register successful</a>'; } } ?>
login_do.php
<?php $username = $_POST['username']; $password = $_POST['password']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "select * from tbl_user where username = '" . $username . "' and password = '" . $password . "'"; echo '<p>' . $query; $result = $db->query($query); if ($result->num_rows) { echo '<p>' . '<a href="login.html" rel="external nofollow" rel="external nofollow" >Login successful</a>'; } else { echo '<p>' . '<a href="login.html" rel="external nofollow" rel="external nofollow" >Login failed</a>'; } ?>
userlist.php
rreee
4. 페이지의 최종 표시 효과는 다음과 같습니다.
5. 사용자 코드 삭제:
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } echo '<p>' . 'All user as follows:'; $query = "select * from tbl_user order by username"; if ($result = $db->query($query)) { while ($row = $result->fetch_assoc()) { echo '<p>' . 'Username : ' . $row['username'] . ' <a href="userdelete.php?username=' . $row['username'] . '" rel="external nofollow" >delete</a>'; } } ?>책 추가. 페이지는 아래와 같습니다(bookadd.html):
2. 테이블 생성 스크립트는 다음과 같습니다.
<?php $username = $_GET['username']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "delete from tbl_user where username = '" . $username . "'"; echo $query; if ($result = $db->query($query)) { echo '<p>' . 'Delete user ' . $username . ' successful'; } else { echo '<p>' . 'Delete user ' . $username . ' failed'; } echo '<p>' . '<a href="userlist.php" rel="external nofollow" >Back to user list</a>'; ?>3 추가된 로직 처리 코드는 다음과 같습니다(bookadd_do.php). 여기서 특히 주의해야 할 점은 이 문장 "
$db->query("set names utf-8")
"는 데이터베이스에 데이터를 쓸 때 utf-8 인코딩 및 디코딩을 의미한다는 것입니다. 데이터베이스 테이블의 동작을 표시하는 데 사용됩니다. 한자가 깨지는 것을 방지하기 위한 코덱을 설정합니다. 나중에 이 기술적 사항에 대해 구체적으로 기사를 기록하겠습니다.
DROP DATABASE IF EXISTS `test`; CREATE DATABASE IF NOT EXISTS `test`; USE `test`; DROP TABLE IF EXISTS `tbl_book`; CREATE TABLE IF NOT EXISTS `tbl_book` ( `isbn` varchar(32) NOT NULL, `title` varchar(32) NOT NULL, `author` varchar(32) NOT NULL, `price` float NOT NULL, PRIMARY KEY (`isbn`) ) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
$db->query("set names utf-8")
”,代表向数据库写入数据时,采用utf-8编解码,显示的对数据库表操作的编解码进行设置,以防止中文的乱码。后面我会专门针对这个技术点记录一篇文章。
<?php $isbn = $_POST['isbn']; $title = $_POST['title']; $author = $_POST['author']; $price = $_POST['price']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $db->query("set names utf-8"); //特别注意这句话 $stmt = $db->stmt_init(); $stmt->prepare("insert into tbl_book values (?,?,?,?)"); $stmt->bind_param("sssd", $isbn, $title, $author, $price); $stmt->execute(); echo '<p>' . 'Affect rows is ' . $stmt->affected_rows; echo '<p>' . '<a href="booklist.php" rel="external nofollow" >Go to book list page</a>'; ?>
4、显示图书信息的逻辑代码如下,同样注意这句话“$db->query("set names utf-8")
4. 책 정보를 표시하는 논리 코드는 다음과 같습니다. 또한 "$db->query("set names utf-8")
" 문장에 주의하세요. :
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $db->query("set names utf-8"); //特别注意这句话 $stmt = $db->stmt_init(); $stmt->prepare("select * from tbl_book"); $stmt->bind_result($isbn, $title, $author, $price); $stmt->execute(); while($stmt->fetch()) { echo 'ISBN : ' . $isbn . '<p>'; echo 'Title : ' . $title . '<p>'; echo 'Author : ' . $author . '<p>'; echo 'Price : ' . $price . '<p>'; echo '<p>' . '-----------------------------' . '<p>'; } ?>
5. 표시되는 페이지는 아래와 같습니다.
자, 여기에는 가장 기본적인 부분을 기록해 두었습니다. PHP 엔진은 매우 편리한 데이터베이스 작동 방법을 제공하지만 개발은 결코 아닙니다. 이렇게 간단합니다. 다양한 예외를 어떻게 포착하고 처리할지 신중하게 고려해야 합니다. 데이터베이스 디자인 역시 매우 흥미로운 주제입니다.
당신이 관심을 가질 만한 기사:
PHP에 의해 구현된 mysql 읽기 및 쓰기 분리와 관련된 내용
PHP는 여러 파일을 zip으로 압축하는 기능을 구현합니다. 형식으로 로컬 방식으로 다운로드
위 내용은 PHP+MariaDB 데이터베이스 작업의 기본 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

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

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

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

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
