> 백엔드 개발 > PHP 튜토리얼 > PHP에서 MySQL에 데이터를 보내는 방법

PHP에서 MySQL에 데이터를 보내는 방법

WBOY
풀어 주다: 2016-08-08 09:33:47
원래의
892명이 탐색했습니다.

PHP에서 MySQL에 데이터를 보내는 방법

다음 코드는 매우 간단한 HTML 형식입니다.




<본문>
< 양식 액션=submitform.php3 메소드=GET>
성: < 입력 유형=텍스트 이름=이름_크기=25 최대 길이=25>
이름: < 입력 유형=텍스트 이름=성 이름 크기=25 최대 길이=25>


<입력 유형=제출>
< /양식>

< /html>
데이터를 입력하고 제출 버튼을 누르면 이 양식은 데이터를 submitform.php3으로 보냅니다. 그러면 이 PHP 스크립트가 수신된 데이터를 처리합니다. submitform.php3의 코드는 다음과 같습니다.



<본문>

MySQL_connect(로컬호스트, 사용자 이름, 비밀번호)



mysql_select_db(데이터베이스 이름)

mysql_query("INSERT INTO 테이블 이름(이름, 성)

VALUES ('$first_name', '$last_name')

");

PRint($first_name)

인쇄(" ");

인쇄($last_name)

인쇄("

");
print("등록 양식을 작성해 주셔서 감사합니다");
?>

< /html>
코드의 세 번째 줄에 있는 "사용자 이름"과 "비밀번호"는 각각 MySQL 데이터베이스에 로그인하기 위한 계정 번호와 비밀번호를 나타냅니다. 다섯 번째 줄의 "dbname"은 MySQL 데이터베이스의 이름을 나타냅니다. 13행의 "tablename"은 데이터베이스에 있는 테이블의 이름입니다.

제출을 누르면 입력한 이름이 새 페이지에 표시되는 것을 볼 수 있습니다. 브라우저의 URL 표시줄을 다시 살펴보세요. 내용은 다음과 같습니다.

… /submitform.php3?first_name=Fred&last_name=플린트스톤

form GET 방식을 사용하고 있기 때문에 URL을 통해 submitform.php3으로 데이터가 전송됩니다. 당연히 GET 방식은 한계가 있다. 전송할 내용이 많은 경우에는 GET 방식을 사용할 수 없고 POST 방식만 사용할 수 있다. 그러나 어떤 방법을 사용하든 데이터 전송이 완료되면 PHP는 해당 이름(양식의 이름 속성)과 동일한 양식의 각 필드에 대해 자동으로 변수를 생성합니다.

PHP 변수는 모두 달러 기호로 시작합니다. 이런 식으로 submitform.php3 스크립트를 처리하는 동안 $first_name과 $last_name이라는 두 개의 변수가 입력됩니다.

입력한 이름이 실제로 데이터베이스에 입력되었는지 확인해 보겠습니다. MySQL을 시작하고 mysql> 프롬프트에 다음을 입력하세요.

mysql> 테이블 이름에서 * 선택;
방금 입력한 내용이 포함된 테이블을 얻을 수 있습니다.

+----------------+----------------+

| 이름 | 성

+----------------+----------------+

루펑
|
+----------------+----------------+

1행 세트(0.00초)

submitform.php3의 작동 방식을 분석해 보겠습니다.

스크립트의 처음 두 줄은 다음과 같습니다.

mysql_connect(로컬호스트, 사용자 이름, 비밀번호)



mysql_select_db(데이터베이스 이름)

이 두 함수 호출은 MySQL 데이터베이스를 여는 데 사용됩니다. 특정 매개변수의 의미는 방금 언급되었습니다.

다음 줄은 SQL 문을 실행합니다.

mysql_query("INSERT INTO 테이블 이름(이름, 성)

VALUES ('$first_name', '$last_name')

");

mysql_query 함수는 선택한 데이터베이스에 대해 SQL 쿼리를 실행하는 데 사용됩니다. mysql_query 함수에서 모든 SQL 문을 실행할 수 있습니다. 실행할 SQL 문은 문자열로서 큰따옴표로 묶어야 하며, 그 안에 있는 변수는 작은따옴표로 묶어야 합니다.

한 가지 주의할 점이 있습니다. MySQL 문은 세미콜론(;)으로 끝나야 하며, PHP 코드 라인의 경우에도 마찬가지입니다. 그러나 PHP 스크립트의 MySQL 문에는 세미콜론을 사용할 수 없습니다. 즉, mysql> 프롬프트에서 MySQL 명령을 입력할 때 세미콜론을 추가해야 합니다.

INSERT INTO 테이블 이름(이름, 성)

VALUES('$first_name', '$last_name')

그러나 이 명령이 PHP 스크립트에 나타나면 세미콜론을 제거해야 합니다. 그 이유는 SELECT 및 INSERT와 같은 일부 문이 세미콜론을 사용하거나 사용하지 않고 작동하기 때문입니다. 그러나 세미콜론을 추가하면 작동하지 않는 UPDATE와 같은 일부 명령문이 있습니다. 문제를 피하려면 이 규칙을 기억하세요.

PHP를 사용하여 MySQL에서 데이터를 추출하는 방법

이제 이 작업을 수행하기 위해 또 다른 HTML 양식을 만듭니다.



<본문>
< 양식 액션=searchform.php3 메소드=GET>
검색어를 입력하세요:



성: < 입력 유형=텍스트 이름=이름_크기=25 최대 길이=25>


이름: < 입력 유형=텍스트 이름=성 이름 크기=25 최대 길이=25>


<입력 유형=제출>
< /양식>

< /html>
​마찬가지로 이 양식을 처리하는 PHP 스크립트도 있습니다. searchform.php3 파일을 만들어 보겠습니다.



<본문>

mysql_connect(로컬호스트, 사용자 이름, 비밀번호)



mysql_select_db(데이터베이스 이름)

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

$result = mysql_query ("SELECT * FROM 테이블 이름

first_name LIKE '$first_name%'

AND 성 LIKE '$last_name%'

");

if ($row = mysql_fetch_array($result)) {

{
하세요
$row["first_name"] 인쇄

인쇄(" ");

$row["last_name"] 인쇄

인쇄("

");
} while($row = mysql_fetch_array($result))

} else {print "죄송합니다. 데이터베이스에서 일치하는 기록을 찾을 수 없습니다.";}

?>

< /html>
검색하려는 콘텐츠를 양식에 입력하고 SUBMIT 버튼을 누르면 일치하는 모든 검색 결과가 나열된 새 페이지로 들어갑니다. 이 스크립트가 검색 작업을 완료하는 방법을 살펴보겠습니다.

이전 명령문은 위에서 언급한 것과 동일합니다. 먼저 데이터베이스 연결을 설정한 다음 데이터베이스 및 데이터 테이블을 선택합니다. 이는 모든 데이터베이스 응용 프로그램에 필요합니다. 그러면 다음과 같은 몇 가지 진술이 있습니다.

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

이 줄은 양식의 각 필드가 비어 있는지 확인하는 데 사용됩니다. 두 개의 등호에 주의하십시오. 왜냐하면 대부분의 PHP 구문은 C 언어에서 파생되었으며 여기에서 등호의 사용법도 C와 동일합니다. 하나의 등호는 할당 기호이고 두 개의 등호는 논리를 나타냅니다. 평등. 또한, IF 뒤의 조건이 true인 경우 이후에 실행될 명령문은 "{", "}" 안에 들어가며, 각 명령문 뒤에는 세미콜론을 추가하여 명령문의 끝을 표시해야 한다는 점도 주의해야 합니다.

백분율 기호 %는 SQL 언어의 와일드카드 문자입니다. 한 가지 사항을 이해한 후에는 다음 두 줄의 의미를 알아야 합니다. "FIRST_NAME" 필드가 비어 있으면 모든 FIRST_NAME이 나열됩니다. 다음 두 문장은 같은 의미를 가지고 있습니다.

$result = mysql_query ("SELECT * FROM 테이블 이름

first_name LIKE '$first_name%'

AND 성 LIKE '$last_name%'"

");

이 줄은 대부분의 검색 작업을 수행합니다. mysql_query 함수는 쿼리를 완료하면 정수 플래그를 반환합니다.

쿼리는 모든 레코드에서 first_name 열이 $first_name 변수와 동일하고 last_name 열과 $last_name 변수 값도 동일한 레코드를 선택하여 임시 레코드 세트에 넣고 반환된 정수를 다음과 같이 사용합니다. 이 기록 세트의 표시입니다.

if ($row = mysql_fetch_array($result)) {

{
하세요
$row["first_name"] 인쇄

인쇄(" ");

$row["last_name"] 인쇄

인쇄("

");
} while($row = mysql_fetch_array($result))

} else {print "죄송합니다. 데이터베이스에서 일치하는 기록을 찾을 수 없습니다.";}

마지막 단계인 디스플레이 부분입니다. mysql_fetch_array 함수는 먼저 쿼리 결과의 첫 번째 행의 내용을 추출한 후 PRINT 문을 사용하여 표시합니다. 이 함수의 매개변수는 mysql_query 함수가 반환하는 정수 플래그입니다. mysql_fetch_array가 성공적으로 실행되면 레코드 세트 포인터가 자동으로 아래로 이동하므로 mysql_fetch_array가 다시 실행될 때 다음 레코드 행의 내용을 가져옵니다.

배열 변수 $row는 mysql_fetch_array 함수에 의해 생성되고 쿼리 결과 필드로 채워집니다. 배열의 각 구성 요소는 쿼리 결과의 각 필드에 해당합니다.

일치하는 레코드가 발견되면 변수 $row는 비어 있지 않으며 중괄호 안의 명령문이 실행됩니다.

{
하세요
$row["first_name"] 인쇄

인쇄(" ");

$row["last_name"] 인쇄

인쇄("

");
} while($row = mysql_fetch_array($result))

이것은 do ... while 루프입니다. while 루프와의 차이점은 먼저 루프 본문을 실행한 다음 루프 조건이 충족되는지 확인한다는 것입니다. 레코드 세트가 비어 있지 않으면 루프 본문이 적어도 한 번 실행되어야 한다는 것을 이미 알고 있으므로 while 루프 대신 do...while을 사용해야 합니다. 중괄호 안의 내용은 실행할 루프의 본문입니다.

$row["first_name"] 인쇄

인쇄(" ");

$row["last_name"] 인쇄

인쇄("

");
다음 단계는 while 조건이 충족되는지 확인하는 것입니다. 현재 레코드의 내용을 가져오기 위해 Mysql_fetch_array 함수가 다시 호출됩니다. 이 프로세스는 계속 반복됩니다. 다음 레코드가 없으면 mysql_fetch_array가 false를 반환하고 루프가 종료되며 레코드 세트가 완전히 탐색됩니다.

mysql_fetch_array($result)가 반환하는 배열은 필드 이름으로 호출할 수 있을 뿐만 아니라 일반 배열처럼 첨자로 참조할 수도 있습니다. 이런 식으로 위 코드를 다음과 같이 작성할 수도 있습니다.

$row[0] 인쇄

인쇄(" ");

$row[1] 인쇄

인쇄("

");
echo 함수를 사용하여 이 네 가지 명령문을 더 간결하게 작성할 수도 있습니다.

echo $row[0], " ", $row[1], "< p>"

일치하는 레코드가 없으면 $row에 내용이 없으며 if 문의 else 절이 호출됩니다.

else {print "죄송합니다. 데이터베이스에서 일치하는 기록을 찾을 수 없습니다.";}

위 내용은 PHP에서 MySQL로 데이터를 보내는 방법과 관련된 내용을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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