백엔드 개발 PHP 튜토리얼 PHP 학습이 공식적으로 출발합니다 (6)

PHP 학습이 공식적으로 출발합니다 (6)

Dec 28, 2016 am 09:23 AM
php

이제 PHP의 오류 처리에 대해 이야기하겠습니다

<?php
$file=fopen("1.txt","r");
?>
로그인 후 복사

파일이 없으면 시스템이 직접 오류를 보고합니다.
die를 사용하여 오류 메시지를 작성합니다. Die는 죽음을 의미합니다.

사용자가 위와 같은 오류 메시지를 받는 것을 방지하기 위해 파일에 액세스하기 전에 파일이 있는지 확인합니다

<?php
if(!file_exists("1.txt"))
{
die("File not found");
}
else
{
$file=fopen("1.txt","r");
}
?>
로그인 후 복사

파일이 없으면 파일이 발견되지 않고 인쇄됩니다. 시스템에서 발생하는 오류보다는


사실 PHP의 오류 처리는 그보다 훨씬 더 많고, 예외도 있습니다.
나중에 이야기하자

이제 메인 이벤트부터 시작하고, 마지막으로 PHP를 사용하여 mysql 데이터베이스를 운영합니다.

먼저 데이터베이스에 연결합니다

<?php
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
echo &#39;Connection OK&#39;; mysql_close($link);
?>
로그인 후 복사

$link 이것은 데이터베이스 연결 상태를 나타내는 또 다른 리소스 변수입니다. 인쇄하여 나타나는 내용을 확인할 수 있습니다.
mysql_connect 함수는 mysql 데이터베이스에 연결하는 것입니다
3가지 함수가 있습니다. 즉, 서버 주소, 데이터베이스 사용자 이름, 데이터베이스 사용자 비밀번호
mysql_error 함수는 연결 오류의 원인을 알 수 있습니다
mysql_close는 데이터베이스 연결을 닫는 것입니다

이제 먼저 데이터베이스
데이터베이스 생성 테스트;
테이블 생성

PHP 학습이 공식적으로 출발합니다 (6)

매우 간단합니다

phpmyadmin을 입력하고 살펴보세요

PHP 학습이 공식적으로 출발합니다 (6)

PHP 학습이 공식적으로 출발합니다 (6)

먼저 데이터 몇 개를 삽입해서 살펴봅니다

이제 mysql 데이터베이스에 연결한 다음 mysql 데이터베이스 중 하나에 데이터를 삽입해야 합니다.

<?php
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
mysql_select_db(&#39;test&#39;,$link);
mysql_query("insert into user (name,age) values (&#39;harry&#39;,15)",$link);
mysql_close($link);
?>
로그인 후 복사

mysql_select_db는 데이터베이스를 선택하는 함수입니다.
mysql_query는 sql 문 함수를 실행하는 함수로, 어떤 SQL이든 실행할 수 있습니다. , 데이터베이스 및 테이블 생성 포함
두 함수 중 두 번째 매개변수는 생략 가능
mysql_select_db('test');
mysql_query("insert into user (name,age) ) 값 ​​('harry ',15)");
두 번째 매개변수가 연결 식별자를 지정하지 않으면 마지막으로 열린 연결이 사용됩니다. 열려 있는 연결이 없으면 매개변수 없이 mysql_connect()가 호출되어 연결을 열고 사용하려고 합니다.

이제 삽입이 성공했는지 확인하세요

PHP 학습이 공식적으로 출발합니다 (6)

ok가 삽입되었습니다

이제 폼을 사용하여 데이터를 삽입합니다

<html>
<body> <form action="" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> </body>
</html>
로그인 후 복사
<?php
$name=$_POST[&#39;name&#39;];
$age=$_POST[&#39;age&#39;];
if(isset($name)&&isset($age))
{
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
mysql_select_db(&#39;test&#39;);
$sql="insert into user (name,age) values (&#39;$name&#39;,$age)";
if(mysql_query($sql))
echo "Insert Success!";
else
echo "Insert Fail!".mysql_error();
mysql_close($link);
}
?>
로그인 후 복사

mysql_query()는 sql 문을 성공적으로 실행하면 TRUE를 반환하고, 오류가 발생하면 FALSE를 반환합니다

이제 데이터를 표시해 보겠습니다

<html>
<body> <form action="" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
<?php
//数据库连接
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
mysql_select_db(&#39;test&#39;); //插入
$name=$_POST[&#39;name&#39;];
$age=$_POST[&#39;age&#39;];
if(isset($name)&&isset($age))
{ $sql="insert into user (name,age) values (&#39;$name&#39;,$age)";
if(mysql_query($sql))
echo "Insert Success!";
else
echo "Insert Fail!".mysql_error(); }
//查询
$sql="select * from user";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "<table>";
echo "<tr>";
echo "<td>" . $row[&#39;id&#39;] . "</td>";
echo "<td>" . $row[&#39;name&#39;] . "</td>";
echo "<td>" . $row[&#39;age&#39;] . "</td>";
echo "</tr>";
echo "</table>";
} mysql_free_result($result);
mysql_close($link); ?>
</body>
</html>
로그인 후 복사


$result=mysql_query($sql)도 리소스입니다. 변수, mysql_query가 쿼리 sql 문을 실행할 때 반환 결과는 더 이상 true와 false가 아니라 결과 집합입니다. mysql_query 쿼리의 결과는 $result에 테이블을 반환하고 $result는 테이블(결과)입니다. set)

mysql_fetch_array 함수는 결과 세트를 연관 배열, 숫자 배열 또는 둘 다로 결과 세트에서 가져옵니다.
mysql_fetch_array는 한 번에 한 행의 데이터만 결과 세트(테이블)에서 가져올 수 있기 때문에 루프를 수행해야 하는 이유는 무엇입니까? 차원 연관 배열, $row는 1차원 연관 배열입니다.
mysql_fetch_array에는 이를 가리키는 포인터가 있습니다. 각 라인에 대해 이 함수가 실행될 때마다 포인터는 함수가 다시 실행되면 자동으로 다음 라인을 가리킵니다. 이 줄의 데이터를 얻을 수 있습니다. 마지막 줄까지 포인터는 null을 가리킬 것이므로 루프도 비어 있기 때문에 종료됩니다.
$row가 2차원 배열이라고 생각하지 마세요. 항상 1차원이며 반복할 때마다 다시 할당됩니다
어떤 사람들은 배열을 루프 조건으로도 사용할 수 있는지 의심할 수 있습니다. 네
$a=array(1,2)
while($a)
루프도 가능하지만 무한루프입니다
그동안 0이 아닌 것만 있기 때문이죠 대괄호 반복될 수 있습니다


$row['name'] 단지 배열에서 값을 가져옵니다. 연관 배열을 기억하시나요?
실제로 배열 첨자를 사용할 수도 있습니다. 사실 이전에는 말하지 않았지만 연관 배열도 일반 배열의 특성을 갖고 있어 더 강력합니다
그래서 이것이 가능합니다

echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
로그인 후 복사
mysql_free_result는 리소스를 해제하는 것입니다

. 반드시 사용할 필요는 없으며, 반환한 후에만 고려하면 됩니다. 큰 결과 집합이 많은 메모리를 차지할 때 호출됩니다. 스크립트가 끝나면 관련된 모든 메모리가 자동으로 해제됩니다.



또한 mysql_fetch_row도 결과를 쿼리할 수 있지만 mysql_fetch_array와 비교하면 약합니다. 과거에 있었던 일에 대한 소개 이런 것. . .


//쿼리

$sql="select * from user";
$result=mysql_query($sql);
while($row = mysql_fetch_row($result))
{
echo "";
echo "";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "";
echo "
"; }
로그인 후 복사

mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中
则row不再是关联数组而是普通数组,所以只能用数组下标


下面说说几个常用的数据显示函数
int mysql_num_rows ( resource $result )
mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效
int mysql_num_fields ( resource $result )
mysql_num_fields() 返回结果集中字段的数目
int mysql_insert_id ([ resource $link_identifier ] )
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号

重新写下

 
 
Name: Age:
"; echo ""; echo "<td>" . $row[0] . "</td>"; echo "<td>" . $row[1] . "</td>"; echo "<td>" . $row[2] . "</td>"; echo ""; echo ""; } echo "总共".mysql_num_rows($result)."记录
"; echo "每行".mysql_num_fields($result)."字段"; mysql_free_result($result); mysql_close($link); ?>
로그인 후 복사

header("Content-Type:text/html;charset=gbk"); 这个是表明文件编码格式,显示中文需要这样
error_reporting(0); 屏蔽一切系统提示的注意,警告,和错误

现在完成 修改和删除部分

<?php
header("Content-Type:text/html;charset=gbk");
error_reporting(0);
?> <html>
<body> <form action="" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> <?php
//数据库连接
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
mysql_select_db(&#39;test&#39;);
//插入
$name=$_POST[&#39;name&#39;];
$age=$_POST[&#39;age&#39;];
if(isset($name)&&isset($age))
{ $sql="insert into user (name,age) values (&#39;$name&#39;,$age)";
if(mysql_query($sql))
echo "Insert Success!";
else
echo "Insert Fail!".mysql_error(); } /
/查询
$sql="select * from user";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
{
?>
<form action="" method="post">
ID: <?=$row[&#39;id&#39;]?>
Name: <input type="text" name="_name" value="<?=$row[&#39;name&#39;]?>"/>
Age: <input type="text" name="_age" value="<?=$row[&#39;age&#39;]?>" />
<input type="hidden" name="id" value="<?=$row[&#39;id&#39;]?>" />
<input type="submit" value="修改"/>
<a href="index.php?uid=<?=$row[&#39;id&#39;]?>">删除</a>
</form> <?php
} echo "总共".mysql_num_rows($result)."记录<br/>";
echo "每行".mysql_num_fields($result)."字段";
//修改
$name=$_POST[&#39;_name&#39;];
$age=$_POST[&#39;_age&#39;];
$id=$_POST[&#39;id&#39;];
if(isset($name)&&isset($age)&&isset($id))
{ $sql="update user set name=&#39;$name&#39;,age=&#39;$age&#39; where id=$id";
if(mysql_query($sql))
header("location:index.php");
else
echo "Update Fail!".mysql_error(); }
//删除
$uid=$_GET[&#39;uid&#39;];
if(isset($uid))
{ $sql="delete from user where id=$uid";
if(mysql_query($sql))
header("location:index.php");
else
echo "Delete Fail!".mysql_error(); }
mysql_close($link); ?>
</body>
</html>
로그인 후 복사


至此,php对mysql数据库的增删改查操作就全在这一个页面了,灰常的简单

加了个简单的分页,超简单的。。。。暂时就不讲解怎么个来的了,加了简单的注释,大家应该能看懂代码

<?php
header("Content-Type:text/html;charset=gbk");
error_reporting(0);
?> <html>
<body> <form action="" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> <?php
//数据库连接
$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;);
if (!$link) {
die(&#39;Could not connect to MySQL: &#39; . mysql_error());
}
mysql_select_db(&#39;test&#39;); //插入
$name=$_POST[&#39;name&#39;];
$age=$_POST[&#39;age&#39;];
if(isset($name)&&isset($age))
{ $sql="insert into user (name,age) values (&#39;$name&#39;,$age)";
if(mysql_query($sql))
echo "Insert Success!";
else
echo "Insert Fail!".mysql_error(); } //分页查询
if(isset($_GET[&#39;pager&#39;]))
$pager=($_GET[&#39;pager&#39;]-1)*5;
else
$pager=0; $sql="select * from user";
$result=mysql_query($sql);
$num=mysql_num_rows($result); //总共记录数
$page=ceil($num/5); //总共多少页 这里每页5条记录 ceil函数四舍五入的。。
for($i=1;$i<=$page;$i++)
echo "<a href=&#39;index.php?pager=".$i."&#39;>".$i."</a>"; $
sql="select * from user limit $pager,5";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
{
?>
<form action="" method="post">
ID: <?=$row[&#39;id&#39;]?>
Name: <input type="text" name="_name" value="<?=$row[&#39;name&#39;]?>"/>
Age: <input type="text" name="_age" value="<?=$row[&#39;age&#39;]?>" />
<input type="hidden" name="id" value="<?=$row[&#39;id&#39;]?>" />
<input type="submit" value="修改"/>
<a href="index.php?uid=<?=$row[&#39;id&#39;]?>">删除</a>
</form> <?php
} echo "总共".$num."记录<br/>";
echo "每行".mysql_num_fields($result)."字段"; //修改
$name=$_POST[&#39;_name&#39;];
$age=$_POST[&#39;_age&#39;];
$id=$_POST[&#39;id&#39;];
if(isset($name)&&isset($age)&&isset($id))
{ $sql="update user set name=&#39;$name&#39;,age=&#39;$age&#39; where id=$id";
if(mysql_query($sql))
header("location:index.php");
else
echo "Update Fail!".mysql_error(); }
//删除
$uid=$_GET[&#39;uid&#39;];
if(isset($uid))
{ $sql="delete from user where id=$uid";
if(mysql_query($sql))
header("location:index.php");
else
echo "Delete Fail!".mysql_error(); }
mysql_close($link); ?>
</body>
</html>
로그인 후 복사

暂时先到这里了
php后面内容还有很多,还有对象等知识,光数据操作就还有面向对象的

 以上就是php学习正式起航(6)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

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

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

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

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

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

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

See all articles