> 백엔드 개발 > PHP 튜토리얼 > mysql과 결합된 PHP에 대한 자세한 설명

mysql과 결합된 PHP에 대한 자세한 설명

韦小宝
풀어 주다: 2023-03-20 22:52:01
원래의
6219명이 탐색했습니다.

많은 PHP 프로그래머들이 PHP 개발에 사용하는 데이터베이스는 mysql 데이터베이스라고 생각하는데, 왜 PHP 개발을 mysql 데이터베이스와 결합하면 안되는 걸까요? 그럼 한번 살펴보겠습니다. PHP와 mysql의 결합에 대해 자세히 설명하고, PHP 개발이 mysql과 결합되어야 하는 이유를 설명합니다.

추천 mysql 비디오 튜토리얼: "mysql tutorial"                                             ​ ​ ​

파트 1: 내 앱 도구.

phpstudy: 이 패키지는 최신 Apache+PHP+MySQL+phpMyAdmin을 통합합니다. 한 번만 설치하면 구성 없이 사용할 수 있어 매우 편리하고 사용하기 쉬운 PHP 디버깅 환경입니다. 더 이상 php, mysql, appche를 별도로 다운로드하여 설치할 필요가 없어 간편하고 편리합니다.
먼저 다음 phpstudy를 알아보세요:
mysql과 결합된 PHP에 대한 자세한 설명

위 그림에서 "MySQL Manager"를 클릭하고 MySQL-Front를 선택하세요.
mysql과 결합된 PHP에 대한 자세한 설명

다음 인터페이스가 나타납니다:
열고 나면 공식 데이터베이스 인터페이스로 들어갑니다. .
mysql과 결합된 PHP에 대한 자세한 설명
다음 mysql은 누구나 참고할 수 있는 내용이며 구체적인 동작은 뒤에서 설명하겠습니다.

이 부분에서 제가 겪은 가장 큰 문제는 그림 5에서 localhost를 열 때 mysql에 연결할 수 없다는 것이었습니다. 정말 다른 방법이 없었기 때문에 phpstudy를 다시 설치하기로 했습니다.

2부: php, apache 및 mysql 간의 관계를 이해합니다.

고객이 온라인 상점에서 책을 구매한 후, 온라인 상점 주인은 상품을 받기 위해 제조업체에 가서 상품을 고객에게 배송합니다.
흐름도는 다음과 같습니다.

mysql과 결합된 PHP에 대한 자세한 설명
위 그림을 보면 고객과 점주가 직접 소통하는 것이 아니라, 커뮤니케이션 서비스를 제공하는 점주를 통해 데이터를 주고받는다는 것을 알 수 있습니다. php, apache 및 데이터베이스의 관계는 고객, 상점 주인 및 제조업체 간의 관계와 같습니다. PHP는 일종의 데이터가 필요하며 apache 서버에 직접 요청을 보낸 다음 데이터베이스에 다시 요청을 전달하여 apache 서버에 제공합니다. 서버는 이를 PHP로 보냅니다. 1. 왜 PHP와 데이터베이스가 직접 통신할 수 없고 아파치를 거쳐야 하나요?
예: PHP와 데이터베이스는 국적이 다른 두 사람과 같습니다. 전자는 중국 출신이고 후자는 미국 출신입니다. 언어 장벽으로 인해 비즈니스는커녕 의사소통도 문제가 됩니다. 중국어와 영어를 모두 이해하는 Apache라는 사람이 있는데, 그는 PHP의 요구 사항을 영어로 번역하고 데이터베이스에 해당 상품을 꺼내서 Apache에 건네주고, Apache는 이를 PHP에 전달합니다.

PHP 언어와 데이터베이스 데이터는 서로 인식할 수 없으며 아파치를 통해 변환해야 합니다.


2. 왜 아파치는 서버와 데이터베이스 역할을 모두 할 수 없는 걸까요? ?
이것은 합리적인 분업 문제를 해결하기 위해 고안되었습니다. Apache를 데이터베이스와 병합하면 Apache가 상점 소유자이자 제조업체가 되는 것과 동일하므로 Apache 서버의 작업 부하가 크게 증가합니다. 데이터가 작을 경우에는 Apache가 감당할 수 있습니다. 데이터가 크면 Apache가 공장 창고의 운송 및 관리 작업을 부담해야 하므로 창고 운송 및 관리를 맡기는 것이 좋습니다. 공장에서 일해요.

mysql 데이터베이스

(database)

세상에는 수많은 데이터베이스가 있으며 그 중 mysql이 가장 인기가 높습니다. MySQL은 스웨덴 MySQL AB 회사에서 개발했으며 현재 Oracle이 소유하고 있는 관계형 데이터베이스
관리 시스템입니다. MySQL은 관계형 데이터베이스 관리 시스템입니다. 관계형 데이터베이스는 모든 데이터를 하나의 대형 웨어하우스에 저장하는 대신 여러 테이블에 저장하므로 속도와 유연성이 향상됩니다. (
MySQL 데이터베이스는 상품을 분류하여 서로 다른 창고에 배치하는 것과 같습니다. 각 창고는 소규모 데이터베이스이고, 공장은 대규모 데이터베이스입니다. 이는 상품에 대한 접근을 용이하게 합니다. 상품을 분류하여 보관하지 않으면 당연한 일입니다. 저장 효율성이 크게 감소합니다.) RDBMS(관계형 데이터베이스 관리 시스템)의 특징: 1. 데이터가 테이블 형태로 나타납니다.

2. 각 행에는 다양한 레코드 이름이 포함됩니다.

3 각 열에는 레코드 이름에 해당하는 데이터 필드가 포함됩니다. . 여러 개의 행과 열이 하나의 양식을 형성합니다
5. 여러 개의 양식이 데이터베이스를 형성합니다

3부: php를 사용하여 mysql 데이터베이스 운영

1. php 스크립트 를 사용하여 데이터베이스에 연결

PHP는 데이터베이스에 연결하기 위한 mysql_connect() 함수를 제공합니다. 이 함수에는 5개의 매개변수가 있으며 일반적으로 처음 3개만 사용합니다.

这里你也许会问,php可以连接数据库那appache干什么去了。
这里说明一下,apache是一个服务器,其构筑了一个php和数据库可以沟通的环境.php和数据库这两个讲不同语言的人打电话,
通过apache这个同声翻译系统进行沟通
로그인 후 복사

.server는 연결할 서버를 지정합니다. "hostname:port"와 같은 포트 번호 또는 localhost의 ":/path/to/socket"과 같은 로컬 소켓 경로를 포함할 수 있습니다.
PHP 지시문 mysql.default_host가 정의되지 않은 경우(기본 경우) 기본값은 'localhost:3306'입니다.
. 사용자 사용자 이름. 기본값은 서버 프로세스 소유자의 사용자 이름입니다.
. 비밀번호 비밀번호. 기본값은 빈 비밀번호입니다.

php mysql_close는 mysql 데이터베이스와의 연결을 끊는 데 사용됩니다. 일반적인 상황에서는 스크립트 실행 후 자동으로 연결이 끊어지므로 이 문장을 작성할 필요가 없습니다. 그러나 mysql_close()는 mysql_pconnect()에 의해 설정된 영구 연결을 닫지 않습니다.
데이터베이스에 연결:

<?php
header("content-type:text/html;charset=utf-8");
$servername = "127.0.0.1";//服务器主机地址
$username = "root";//访问数据库的用户名
 $password = "root";//访问数据库的密码
 //phpstudy的mysql有一个默认用户名(root)和密码(root)

// 创建连接
$conn = mysql_connect($servername, $username,$password);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开
连接。
}
echo "连接成功";
mysql_close($conn);//关闭连接。
?>
로그인 후 복사

모든 사람이 데이터베이스에 액세스할 수 있는 것은 아니며 권한이 있는 사람만 데이터베이스에 액세스할 수 있습니다. 다음으로 mysql-front 도구를 사용하여 사용자를 추가하는 방법을 보여드리겠습니다.

mysql과 결합된 PHP에 대한 자세한 설명
새 사용자를 추가한 후:

mysql과 결합된 PHP에 대한 자세한 설명
새 사용자를 사용하여 작업에 액세스합니다.

<?php
header("content-type:text/html;charset=utf-8");
$servername = "127.0.0.1";//服务器主机地址
$username = "sunwukong";//访问数据库的用户名
 $password = "jingubang";//访问数据库的密码
 //phpstudy的mysql有一个默认用户名(root)和密码(root)

// 创建连接
$conn = mysql_connect($servername, $username,$password);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开连接。
}
echo "连接成功";
mysql_close($conn);//关闭连接。
?>
로그인 후 복사

연결에 성공했습니다.

2. 데이터베이스 생성

php는 mysql_query(sql, 연결)를 사용하여 데이터베이스를 생성하거나 삭제합니다. mysql_query()는 설정된 연결 연결을 통해 검색 쿼리문 sql을 데이터베이스로 보냅니다. 데이터베이스를 읽은 후 해당 작업에 응답합니다.

<?php
header("content-type:text/html;charset=utf-8");
$servername = "127.0.0.1";//服务器主机地址
$username = "sunwukong";//访问数据库的用户名
 $password = "jingubang";//访问数据库的密码
 //phpstudy的mysql有一个默认用户名(root)和密码(root)

// 创建连接
$conn = mysql_connect($servername, $username,$password);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开连接。
}
echo "连接成功";
echo "</br>";
$sql = "CREATE DATABASE zhubajie";//CREATE DATABASE是sql语言中创建数据库的语句,这里是一个创建名为“zhubajie”
的数据库的字符串。
$dingpa = mysql_query($sql,$conn);//将$sql查询语句发送给数据库。
if (!$dingpa) {
    die("创建数据库失败:".mysql_error());
}
echo "创建成功";
mysql_close($conn);//关闭连接。
?>
로그인 후 복사

실행 후,
mysql과 결합된 PHP에 대한 자세한 설명

때때로 위의 PHP 파일을 실행하면 아래 그림과 같은 오류가 표시되는 것을 발견할 수 있습니다.

mysql과 결합된 PHP에 대한 자세한 설명
이 오류의 원인은 $username = “sunwukong”을 전달했기 때문입니다. 사용자 이름으로 데이터베이스에 액세스할 때 이 사용자는 mysql에서 생성될 때 권한이 부여되지 않았습니다.

mysql과 결합된 PHP에 대한 자세한 설명

3. 데이터베이스 삭제

데이터베이스 삭제도 데이터베이스 생성과 마찬가지로 mysql_query를 통해 이루어집니다.

mysql과 결합된 PHP에 대한 자세한 설명

4. 데이터 테이블 만들기 data

mysql과 결합된 PHP에 대한 자세한 설명

"id", "firstname", "lastname", "email" 및 "reg_date" 5개 열이 있는 "MyGuests"라는 테이블을 만듭니다.
MyGuests 데이터 테이블을 생성합니다.

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)
로그인 후 복사

는 다음과 같이 데이터 테이블에 표시됩니다.

1mysql과 결합된 PHP에 대한 자세한 설명

여기서 개체 브라우저에 의해 표시되는 테이블의 헤더 행에 주의해야 합니다. 다른 속성.

mysql과 결합된 PHP에 대한 자세한 설명
위 사진은 구체적인 데이터 차트입니다.
아래의 특정 코드를 살펴보겠습니다.

PHP 초기 버전에서는 MySQL 확장을 사용합니다. 그러나 이 확장은 2012년에 더 이상 사용되지 않습니다. 대신 저는 mysqli 확장을 사용하고 개인적으로는 PDO를 사용합니다. mysqli 확장은 mysql 확장의 확장으로, 사용하는 둘 사이에는 차이가 없지만 전자가 후자보다 더 강력합니다. 다음은 mysqli의 프로세스 지향 인코딩 방식(객체 지향적 인코딩 방식도 있음)을 사용하여 mysql을 동작시키는 방법이다. 위의 MySQL 확장 인코딩 방식과 비교할 수 있다.

1mysql과 결합된 PHP에 대한 자세한 설명

1mysql과 결합된 PHP에 대한 자세한 설명

AUTO INCREMENT - 새 레코드가 추가될 때마다 MySQL 필드의 값이 자동으로 1씩 증가하도록 설정합니다.
PRIMARY KEY - 데이터 테이블에 있는 각 레코드의 고유 식별자를 설정합니다. 일반적으로 열의 PRIMARY KEY는 AUTO_INCREMENT와 함께 사용되는 ID 값으로 설정됩니다. 각 테이블에는 기본 키(이 열은 "zhubajie_t" 열임)가 있어야 하며 기본 키에는 고유한 값이 포함되어야 합니다. (잘 이해하지 못할 수도 있지만 나중에 설명하겠습니다.)

NOT NULL - 각 행에는 값이 포함되어야 하며(비어 있을 수 없음) null 값은 허용되지 않습니다.
기본 값 - 기본값 설정
UNSIGNED - 부호 없는 숫자 유형, 0 및 양수를 사용하세요
위의 세 가지 속성은 지정된 열의 데이터 유형뿐만 아니라 열에도 추가될 수 있습니다. (여기서 잘 이해해 봅시다).

5. 테이블 데이터 삭제

mysql과 결합된 PHP에 대한 자세한 설명

사실, 남자나 여자나 마찬가지로 PHP를 mysql과 결합하여 개발하는 것이 오랜 습관이었습니다. 물론 특별한 상황도 있습니다.

관련 권장 사항:

mysql 데이터베이스의 최적화 요약

데이터베이스 군사 규정을 이해하는 데 도움이 되도록 MySQL을 예로 들어보세요

위 내용은 mysql과 결합된 PHP에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿