>백엔드 개발 >PHP 튜토리얼 >메리 외로운 크리스마스 PHP MySQL로 데이터를 보내는 방법

메리 외로운 크리스마스 PHP MySQL로 데이터를 보내는 방법

WBOY
WBOY원래의
2016-07-29 08:34:27959검색

다음 코드는 매우 간단한 HTML 형식입니다.
< body> 🎜>성: < 입력 유형=텍스트 이름=first_name 크기=25 maxlength=25>
이름: < 입력 유형=text 이름=last_name 크기=25 maxlength=25>
< 입력 유형=제출>
< /body>
< /html> 데이터는 submitform.php3으로 전송됩니다. 그러면 이 PHP 스크립트는 submitform.php3의 코드를 처리합니다:
< body> );
mysql_select_db(dbname);
mysql_query("INSERT INTO 테이블 이름(first_name, last_name)
VALUES('$first_name', '$last_name')
"); $first_name);
인쇄(" ");
인쇄($last_name);
인쇄("< p>")
인쇄("등록 양식을 작성해 주셔서 감사합니다." );
?>
< /html>
코드의 세 번째 줄에 있는 "사용자 이름"과 "비밀번호"는 각각 MySQL 데이터베이스에 로그인합니다. 다섯 번째 줄의 "dbname"은 MySQL 데이터베이스의 이름을 나타냅니다. 13행의 "tablename"은 데이터베이스에 있는 테이블의 이름입니다.
제출을 누르면 입력한 이름이 새 페이지에 표시되는 것을 볼 수 있습니다. 브라우저의 URL 표시줄을 다시 살펴보세요. 내용은 다음과 같습니다.
… /submitform.php3?first_name=Fred&last_name=Flintstone
GET 방식을 사용하기 때문에 데이터는 URL을 통해 전달됩니다. submitform.php3으로 전송됩니다. 당연히 GET 방식은 한계가 있다. 전송할 내용이 많은 경우에는 GET 방식을 사용할 수 없고 POST 방식만 사용할 수 있다. 그러나 어떤 방법을 사용하든 데이터 전송이 완료되면 PHP는 해당 이름(양식의 이름 속성)과 동일한 양식의 각 필드에 대해 자동으로 변수를 생성합니다.
PHP 변수는 모두 달러 기호로 시작합니다. 이런 식으로 submitform.php3 스크립트를 처리하는 동안 $first_name과 $last_name이라는 두 개의 변수가 입력됩니다.
입력한 이름이 실제로 데이터베이스에 입력되었는지 확인해 보겠습니다. MySQL을 시작하고 mysql> 프롬프트에 다음을 입력합니다.
mysql> select * from tablename
방금 입력한 내용이 포함된 테이블을 얻을 수 있습니다.
-------- - --- ------------
| 이름 | 성
------------ ----------- -
| Liu| Rufeng
------------ ------------
세트당 1행(0.00초)
분석해 보겠습니다. submitform.php3 작동 방식:
스크립트의 처음 두 줄은 다음과 같습니다.
mysql_connect(localhost, 사용자 이름, 비밀번호)
mysql_select_db(dbname)
이 두 함수 호출은 MySQL을 여는 데 사용됩니다. 특정 매개변수의 의미가 방금 언급되었습니다.
다음 줄은 SQL 문을 실행합니다.
mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
"); mysql_query 함수는 선택한 데이터베이스에 대해 SQL 쿼리를 실행하는 데 사용됩니다. mysql_query 함수에서는 모든 SQL 문을 실행할 수 있습니다. 실행할 SQL 문은 문자열로서 큰따옴표로 묶어야 하며, 그 안에 있는 변수는 작은따옴표로 묶어야 합니다.
한 가지 주의할 점이 있습니다. MySQL 문은 세미콜론(;)으로 끝나야 하며, PHP 코드 라인도 마찬가지지만, PHP 스크립트의 MySQL 문에는 세미콜론을 사용할 수 없습니다. 즉, mysql> 프롬프트에 MySQL 명령을 입력할 때 세미콜론을 추가해야 합니다:
INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
그러나 이 명령이 PHP 스크립트에 나타나면 세미콜론을 제거해야 합니다. 그 이유는 SELECT 및 INSERT와 같은 일부 문이 세미콜론을 사용하거나 사용하지 않고 작동하기 때문입니다. 그러나 세미콜론을 추가하면 작동하지 않는 UPDATE와 같은 일부 명령문이 있습니다. 문제를 피하려면 이 규칙을 기억하세요.
PHP가 MySQL에서 데이터를 추출하는 방법
이제 이 작업을 수행하기 위한 또 다른 HTML 양식을 만듭니다.
< body> GET>
< p>
성: < 입력 유형=text name=first_name size=25 maxlength=25> 이름: < 입력 유형=텍스트 이름=25>
< p> /body> , 이 양식을 처리하는 또 다른 searchform.php3 파일도 있습니다:
< body> 비밀번호);
mysql_select_db (dbname);
if ($first_name == "")
{$first_name = '%' }
if ($last_name == "")
{$last_name = '%';}
$result = mysql_query ("SELECT * FROM tablename
WHERE first_name LIKE '$first_name%'
AND last_name LIKE '$last_name%'
");
if ($row = mysql_fetch_array($result)) {
do {
print $row["first_name"]
print (" ")
print $row["last_name" "];
print ("< p>");
} while($row = mysql_fetch_array($result));
} else {print "죄송합니다. 데이터베이스에서 일치하는 기록을 찾을 수 없습니다. . ";}
?>
< /body>
< /html>
검색하려는 내용을 양식에 입력하고 SUBMIT 버튼을 누르면 A가 입력됩니다. 일치하는 모든 검색 결과를 나열하는 새 페이지입니다.
이전 문은 위에서 언급한 내용과 동일합니다. 그런 다음 데이터베이스와 데이터 테이블을 선택합니다. , 이는 모든 데이터베이스 애플리케이션에 필요합니다.
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 tablename
WHERE first_name LIKE '$first_name%'
AND last_name LIKE '$last_name%'"
");
이 줄은 대부분의 검색 작업을 완료합니다. mysql_query 함수는 쿼리를 완료하면 정수 플래그를 반환합니다.
  쿼리는 모든 레코드에서 first_name 열이 $first_name 변수와 동일하고 last_name 열과 $last_name 변수 값도 동일한 레코드를 선택하여 임시 레코드 세트에 넣고 이 레코드 세트 로고의 값으로 정수를 반환했습니다.
if ($row = mysql_fetch_array($result)) {
do {
print $row["first_name"]
print (" ")
print $row["last_name "];
print ("< p>");
} 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는 비어 있지 않으며 중괄호 안의 명령문이 실행됩니다.
do {
print $row["first_name"]; 인쇄(" ");
인쇄 $row["last_name"];
인쇄("< p>")
} while($row = mysql_fetch_array($result)); 이것은 do...while 루프입니다. while 루프와의 차이점은 먼저 루프 본문을 실행한 다음 루프 조건이 충족되는지 확인한다는 것입니다. 레코드 세트가 비어 있지 않으면 루프 본문이 적어도 한 번 실행되어야 한다는 것을 이미 알고 있으므로 while 루프 대신 do...while을 사용해야 합니다. 중괄호 안에는 실행할 루프 본문이 있습니다.
print $row["first_name"];
print (" ")
print $row["last_name"]; print ( "< p>");
다음 단계는 while 조건이 충족되는지 확인하는 것입니다. 현재 레코드의 내용을 가져오기 위해 Mysql_fetch_array 함수가 다시 호출됩니다. 이 프로세스는 계속 반복됩니다. 다음 레코드가 없으면 mysql_fetch_array가 false를 반환하고 루프가 종료되며 레코드 세트가 완전히 탐색됩니다.
mysql_fetch_array($result)가 반환한 배열은 필드 이름으로 호출할 수 있을 뿐만 아니라 일반 배열처럼 첨자로 참조할 수도 있습니다. 이 방법으로 위 코드를 다음과 같이 작성할 수도 있습니다.
print $row[0];
print (" ")
print $row[1]; ; p>" );
echo 함수를 사용하여 다음 네 가지 명령문을 더 간결하게 작성할 수도 있습니다.
echo $row[0], " ", $row[1], "< p>";
일치하는 레코드가 없으면 $row에 콘텐츠가 없으며 if 문의 else 절이 호출됩니다.
else {print "죄송합니다. 데이터베이스에 콘텐츠가 없습니다. 일치하는 레코드를 찾았습니다. ";}

위 내용은 메리 외로운 크리스마스 내용을 포함하여 메리 외로운 크리스마스 PHP가 MySQL로 데이터를 보내는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


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