프론트엔드 학습 PHP mysql 확장 기능
×
디렉터리
[1]데이터베이스에 연결[2]데이터베이스 사용[3]SQL 쿼리 실행[4]연산 결과 집합[5] 연결 닫기
이전 단어
MySQL은 작은 규모, 빠른 속도, 낮은 총 소유 비용으로 인해 많은 중소기업에서 사용됩니다. 특히 웹사이트의 총 소유 비용을 줄이기 위해 웹사이트는 mysql을 웹사이트 데이터베이스로 선택했습니다. mysql 데이터베이스 관리 시스템과 PHP 스크립팅 언어를 결합한 데이터베이스 시스템 솔루션은 점점 더 많은 웹사이트에서 채택되고 있으며, 그 중 LAMP(linux+apche+mysql+php) 모드가 가장 인기가 있습니다
PHP는 데이터베이스 운영을 위한 표준 기능인 Mysqli는 PHP5에 새로 추가되었으며 mysql 확장 기능이 개선되었습니다. 그러나 역사적 문제로 인해 PHP4에서는 mysql 확장 기능을 사용하여 개발된 프로젝트가 많았습니다. 원본 프로젝트에서 2차 개발을 수행할 경우 mysql 확장 기능을 사용해야 합니다. 새로 설계한 프로젝트라면 mysqli 확장이나 PDO 기술을 사용하는 것이 좋습니다. 이번 글에서는 주로 PHP의 mysql 확장 기능을 소개합니다
요약
PHP 스크립트에서 MySQL 데이터베이스를 동작시키는 몇 가지 단계는 다음과 같습니다.
1. MySQL 데이터베이스에 접속합니다. 연결이 올바른지 확인
2. 데이터베이스를 선택하고 문자셋을 설정합니다(선택)
3. SQL 명령을 실행
4. 처리 결과 세트
5. 데이터베이스 연결 종료
1단계: MySQL 데이터베이스 서버에 연결하고 연결이 올바른지 확인
mysql_connect()
mysql_connect() 함수 MySQL 서버에 대한 연결을 여는 데 사용됩니다. 성공 시 리소스 반환, 실패 시 FALSE 반환 🎜>
mysql_errno() 함수는 이전 MySQL 작업에서 오류 메시지의 숫자 코드를 반환하는 데 사용됩니다
resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
mysql_error()
mysql_error() 함수는 mysql_error() 함수에 의해 생성된 텍스트 오류 메시지를 반환하는 데 사용됩니다. 이전 MySQL 작업. 연결 리소스 번호를 지정하지 않으면 마지막으로 열린 연결을 사용하여 MySQL 서버int mysql_errno ([ resource $link_identifier ] )
2단계: 데이터베이스 선택 및 문자셋 설정(선택)
일반적으로 데이터베이스 생성 작업은 데이터베이스 관리자(DBA)가 먼저 수립하고, 그런 다음 스크립트에서 PHP 프로그래머가 사용합니다. 예를 들어, bookstore
string mysql_error ([ resource $link_identifier ] )
라는 데이터베이스를 생성합니다. PHP 스크립트를 사용하여 mysql 서버와 연결한 후, mysql 확장이 실행될 때마다 대상 데이터베이스를 지정하지 않도록 합니다. PHP의 함수가 호출되면 먼저 mysql_select_db() 함수를 사용하여 후속 작업을 위한 기본 데이터베이스를 선택하는 것이 가장 좋습니다. 이 함수는 SQL 명령 "USE bookstore"
mysql_select_db와 유사한 기능을 가지고 있습니다. ()
<?php$link = mysql_connect('localhost','root','123456'); var_dump($link);//resource(3, mysql link)if(!$link){die('连接失败:'.mysql_error()); }?>
mysql_select_db () 함수는 MySQL 데이터베이스를 선택하는 데 사용됩니다.
3단계: SQL 명령 실행
먼저 서점 데이터베이스에 도서 데이터 테이블을 생성합니다.
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
<?php$link = mysql_connect('localhost','root','zhiaihebe0123'); var_dump($link);//resource(3, mysql link)if(!$link){die('连接失败:'.mysql_error()); }mysql_select_db('bookstore',$link) or die('不能选定数据库bookstore:' .mysql_error()); mysql_query('set names utf8');//设置字符集(一般不常用)?>
mysql_query()
CREATE TABLE books( id INT NOT NULL AUTO_INCREMENT,bookname VARCHAR(80) NOT NULL DEFAULT '',publisher VARCHAR(60) NOT NULL DEFAULT '',author VARCHAR(20) NOT NULL DEFAULT '',price DOUBLE(5,2) NOT NULL DEFAULT 0.00,ptime INT NOT NULL DEFAULT 0, pic CHAR(24) NOT NULL DEFAULT '',detail TEXT,PRIMARY KEY(id)); ));
삽입할 세 개의 INSERT 문을 선언합니다. 문자열로
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
$insert = "insert into books(bookname, publisher, author, price, detail) values ('PHP','电子工业出版社','张三','80.00','PHP相关'), ('ASP','电子工业出版社','李四','90.00','ASP相关'), ('JSP','电子工业出版社','王五','70.00','JSP相关')";
mysql_affected_rows () Get 이전 MySQL 작업의 영향을 받은 레코드 행 수입니다. 실행이 성공하면 영향을 받은 행의 수가 반환됩니다. 최신 쿼리가 실패하면 함수는 -1
$result = mysql_query($insert);var_dump($result);
일반적으로 mysql_affected_rows() 함수의 값이 0보다 큰지 여부를 판단하여 데이터 작업의 성공 여부를 판단합니다
mysql_insert_id()
mysql_insert_id()函数用来取得上一步 INSERT 操作产生的 ID
int mysql_insert_id ([ resource $link_identifier ] )
<? = "" = (( && () > 0 "数据记录插入成功,最后一条插入的数据记录id为:".()." " "数据记录插入失败,错误号:".().",错误原因:".()." "?>
实际上,最后一个id应该为6,但是由于4、5、6三条语句是同时插入的,这时显示的是第一个id为4
下面,将id为4的记录的作者修改为小白
= ("UPDATE books SET author='小白' WHERE id='4'"( && () > 0 "数据记录修改成功 " "数据记录修改失败,错误号:".().",错误原因:".()." "
下面,删除作者为李四的记录
= ("DELETE FROM books WHERE author='李四'"( && () > 0 "数据记录删除成功 " "数据记录删除失败,错误号:".().",错误原因:".()." "
步骤四:处理结果集
在PHP脚本中执行SELECT查询命令,也是调用mysql_query()函数,但和执行DML不同的是,执行SELECT命令之后,mysql_query()函数的返回值是一个PHP资源的引用指针(结果集)。这个返回值可以在各种结果集处理函数中,对结果数据表的各个字段进行处理
mysql_num_fields()
mysql_num_fields()函数取得结果集中字段的数目
int mysql_num_fields ( resource $result )
mysql_num_rows()
mysql_num_rows()函数取得结果集中行的数目
int mysql_num_rows ( resource $result )
$result = mysql_query("SELECT * FROM books"); $rows = mysql_num_rows($result);$cols = mysql_num_fields($result); var_dump($rows,$cols);//int 4 int 8
从结果中可以看出,该结果集总共有4行8列
如果需要访问结果集中的数据,可以选用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()这4个函数中的任意一个
mysql_fetch_row()
mysql_fetch_row()函数从结果集中取得一行作为枚举数组
array mysql_fetch_row ( resource $result )
如果需要访问结果集中的数据,可以选用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()这4个函数中的任意一个
mysql_fetch_row()
mysql_fetch_row()函数从结果集中取得一行作为枚举数组
array mysql_fetch_row ( resource $result )
$result = mysql_query("SELECT * FROM books"); $row = mysql_fetch_row($result); //Array ( [0] => 1 [1] => PHP [2] => 电子工业出版社 [3] => 张三 [4] => 80.00 [5] => 0 [6] => [7] => PHP相关 ) print_r($row);$row = mysql_fetch_row($result); //Array ( [0] => 3 [1] => JSP [2] => 电子工业出版社 [3] => 王五 [4] => 70.00 [5] => 0 [6] => [7] => JSP相关 ) print_r($row);
mysql_fetch_assoc()
mysql_fetch_assoc()函数从结果集中取得一行作为关联数组
array mysql_fetch_assoc ( resource $result )
$result = mysql_query("SELECT * FROM books"); $assoc = mysql_fetch_assoc($result); //Array ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 ) print_r($assoc); $assoc = mysql_fetch_assoc($result); //Array ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相关 ) print_r($assoc);
mysql_fetch_array()
mysql_fetch_array()函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH,默认值是 MYSQL_BOTH
array mysql_fetch_array ( resource $result [, int $ result_type ] )
$result = mysql_query("SELECT * FROM books");$array = mysql_fetch_array($result); //Array ( [0] => 1 [id] => 1 [1] => PHP [bookname] => PHP [2] => 电子工业出版社 [publisher] => 电子工业出版社 [3] => 张三 [author] => 张三 [4] => 80.00 [price] => 80.00 [5] => 0 [ptime] => 0 [6] => [pic] => [7] => PHP相关 [detail] => PHP相关 )print_r($array); $array = mysql_fetch_array($result); // Array ( [0] => 3 [id] => 3 [1] => JSP [bookname] => JSP [2] => 电子工业出版社 [publisher] => 电子工业出版社 [3] => 王五 [author] => 王五 [4] => 70.00 [price] => 70.00 [5] => 0 [ptime] => 0 [6] => [pic] => [7] => JSP相关 [detail] => JSP相关 )print_r($array);
mysql_fetch_object()
mysql_fetch_object()函数从结果集中取得一行作为对象
object mysql_fetch_object ( resource $result )
$result = mysql_query("SELECT * FROM books");$object = mysql_fetch_object($result); //stdClass Object ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )print_r($object); $object = mysql_fetch_object($result); //stdClass Object ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相关 ) print_r($object);
对于上面的四个函数来说,默认指针都指向第一行记录。在获取一行记录后,指针会自动下移。如果是最后一委,则函数返回false。一般地,mysql_fetch_assoc()这种返回关联数组形式的函数较常用
mysql_data_seek()
mysql_data_seek()函数可以移动内部结果的指针
[注意]$row_number从0开始
bool mysql_data_seek ( resource $result , int $row_number )
$result = mysql_query("SELECT * FROM books"); $assoc = mysql_fetch_assoc($result); mysql_data_seek($result , 2);$assoc = mysql_fetch_assoc($result); Array ( [id] => 4 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 小白[price] =>80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )print_r($assoc);mysql_data_seek($result , 0); $assoc = mysql_fetch_assoc($result);//Array ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 ) print_r($assoc);
下面使用while循环和mysql_fetch_assoc()函数将结果集以表格的形式显示出来
table{ border:1px solid black; border-collapse:collapse; table-layout:fixed; }" _ue_custom_node_="true">$result = mysql_query("SELECT id,bookname,publisher,author,price FROM books"); echo '';echo '';echo '编号';echo '书名';echo '出版社';echo '作者';echo '价格';echo ''; while($assoc = mysql_fetch_assoc($result)) {echo ''; echo "{$assoc['id']}";echo "{$assoc['bookname']}"; echo "{$assoc['publisher']}";echo "{$assoc['author']}"; echo "{$assoc['price']}";echo ''; }echo '';
mysql_free_result()
mysql_free_result()函数用于释放结果内存
bool mysql_free_result ( resource $result )
mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放
步骤五:关闭数据库连接
mysql_close()
mysql_close()函数用于关闭 MySQL 连接
bool mysql_close ([ resource $link_identifier = NULL ] )
mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接
所以,一个比较完整的php操作数据库扩展函数的程序如下所示
<?php//连接数据库$link = mysql_connect('localhost','root','******');if(!$link){die('连接失败:'.mysql_error()); }//选择数据库mysql_select_db('bookstore',$link) or die('不能选定数据库bookstore:' .mysql_error()); //执行SQL命令$insert = "insert into books(bookname, publisher, author, price, detail) values ('PHP','电子工业出版社','张三','80.00','PHP相关'), ('ASP','电子工业出版社','李四','90.00','ASP相关'), ('JSP','电子工业出版社','王五','70.00','JSP相关')"; $result = mysql_query($insert); //操作结果集$result = mysql_query("SELECT id,bookname,publisher,author,price FROM books"); echo ''; echo ''; echo '编号'; echo '书名'; echo '出版社'; echo '作者'; echo '价格'; echo ''; while($assoc = mysql_fetch_assoc($result)) { echo '';echo "{$assoc['id']}";echo "{$assoc['bookname']}";echo "{$assoc['publisher']}"; echo "{$assoc['author']}";echo "{$assoc['price']}";echo ''; }echo '';//释放结果集mysql_free_result($result);//关闭数据库连接mysql_close($link);?>
以上就是前端学PHP之mysql扩展函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!

핫 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)

뜨거운 주제











MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP가 많은 웹 사이트에서 선호되는 기술 스택 인 이유에는 사용 편의성, 강력한 커뮤니티 지원 및 광범위한 사용이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 거대한 개발자 커뮤니티와 풍부한 자원이 있습니다. 3) WordPress, Drupal 및 기타 플랫폼에서 널리 사용됩니다. 4) 웹 서버와 밀접하게 통합하여 개발 배포를 단순화합니다.

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7
