PHP MySQLi 함수: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP에는 조작을 위한 풍부한 내장 함수 모음이 있습니다. MySQL 데이터베이스.
PHP mysqli_connect 함수
PHP mysql connect 함수는 다음에 연결하는 데 사용됩니다. MySQL 데이터베이스 서버.
구문은 다음과 같습니다.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
이리,
- “$db_handle”은 데이터베이스 연결 리소스 변수입니다.
- “mysqli_connect(…)”는 php 데이터베이스 연결을 위한 함수입니다.
- "$server_name"은 호스팅하는 서버의 이름 또는 IP 주소입니다. MySQL 서버.
- "$user_name"은 유효한 사용자 이름입니다. MySQL 서버.
- "$password"는 사용자 이름과 연결된 유효한 비밀번호입니다. MySQL 서버.
PHP mysqli_select_db 함수
mysqli_select_db 함수는 데이터베이스를 선택하는 데 사용됩니다.
구문은 다음과 같습니다.
<?php mysqli_select_db($db_handle,$database_name); ?>
이리,
- “mysqli_select_db(…)”는 true 또는 false를 반환하는 데이터베이스 선택 함수입니다.
- "$database_name"은 데이터베이스의 이름입니다.
- "$link_identifier"는 선택 사항이며 서버 연결 링크를 전달하는 데 사용됩니다.
PHP mysqli_query 함수
mysqli_query 함수는 다음을 실행하는 데 사용됩니다. SQL 검색어.
해당 함수는 다음 쿼리 유형을 실행하는 데 사용할 수 있습니다.
- 끼워 넣다
- 선택
- 업데이트
- 삭제
구문은 다음과 같습니다.
<?php mysqli_query($db_handle,$query) ; ?>
이리,
- “mysqli_query(…)”는 SQL 쿼리를 실행하는 함수입니다.
- "$query"는 실행할 SQL 쿼리입니다.
- "$link_identifier"는 선택 사항이며 서버 연결 링크를 전달하는 데 사용할 수 있습니다.
PHP mysqli_num_rows 함수
mysqli_num_rows 함수는 SELECT 쿼리에서 반환된 행의 수를 가져오는 데 사용됩니다.
구문은 다음과 같습니다.
<?php mysqli_num_rows($result); ?>
이리,
- “mysqli_num_rows(…)”는 행 개수 함수입니다.
- “$result”는 mysqli_query 결과 세트입니다.
PHP mysqli_fetch_array 함수
mysqli_fetch_array 함수는 쿼리 결과 집합에서 행 배열을 가져오는 데 사용됩니다.
구문은 다음과 같습니다.
<?php mysqli_fetch_array($result); ?>
이리,
- “mysqli_fetch_array(…)”는 행 배열을 페치하기 위한 함수입니다.
- “$result”는 mysqli_query 함수가 반환하는 결과입니다.
PHP mysqli_close 함수
mysqli_close 함수는 열려 있는 데이터베이스 연결을 닫는 데 사용됩니다.
구문은 다음과 같습니다.
<?php mysqli_close($db_handle); ?>
이리,
- “mysqli_close(…)”는 PHP 함수입니다.
- "$link_identifier"는 선택 사항이며 서버 연결 리소스를 전달하는 데 사용됩니다.
이러한 기능을 활용하는 실제 사례를 살펴보겠습니다.
그 생성 MySQL 데이터베이스 이 튜토리얼에서는 다음에 대한 지식이 있다고 가정합니다. MySQL 및 SQL에 대한 용어가 익숙하지 않은 경우 MySQL 그리고 SQL 튜토리얼.
하나의 테이블만 포함하는 my_personal_contacts라는 간단한 데이터베이스를 생성하겠습니다.
다음은 데이터베이스와 테이블을 생성하는 단계입니다.
- 연결 대상 MySQL 다음과 같이 즐겨 사용하는 액세스 도구를 사용하여 MySQL 워크벤치, phpMyAdmin 등
- my_person_contacts라는 데이터베이스를 생성합니다.
- 아래에 표시된 스크립트를 실행하여 테이블을 만들고 일부 더미 데이터를 삽입합니다.
<?php CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy'); ?>
이제 PHP에서 조작할 데이터베이스가 설정되었습니다.
데이터베이스에서 레코드 읽기 이제 데이터베이스의 레코드를 인쇄하는 프로그램을 만들어 보겠습니다.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection fails output error message $sql_stmt = "SELECT * FROM my_contacts"; //SQL select query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Database access failed: " . mysqli_error()); //output error message if query execution failed $rows = mysqli_num_rows($result); // get number of rows returned if ($rows) { while ($row = mysqli_fetch_array($result)) { echo 'ID: ' . $row['id'] . '<br>'; echo 'Full Names: ' . $row['full_names'] . '<br>'; echo 'Gender: ' . $row['gender'] . '<br>'; echo 'Contact No: ' . $row['contact_no'] . '<br>'; echo 'Email: ' . $row['email'] . '<br>'; echo 'City: ' . $row['city'] . '<br>'; echo 'Country: ' . $row['country'] . '<br><br>'; } } mysqli_close($dbh); //close the database connection ?>
위 코드를 실행하면 아래 다이어그램에 표시된 결과가 반환됩니다.
새 레코드 삽입
이제 테이블에 새 레코드를 추가하는 예를 살펴보겠습니다. 아래 코드는 구현을 보여줍니다.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Adding record failed: " . mysqli_error()); //output error message if query execution failed echo "Poseidon has been successfully added to your contacts list"; mysqli_close($dbh); //close the database connection ?>
위의 코드 출력 "포세이돈이 연락처 목록에 성공적으로 추가되었습니다"를 실행하면 선택 쿼리 예제로 돌아가서 연락처를 다시 검색합니다.
포세이돈이 목록에 추가되었는지 확인하세요.
레코드 업데이트 이제 데이터베이스의 레코드를 업데이트하는 예를 살펴보겠습니다.
포세이돈이 자신의 연락처 번호와 이메일 주소를 변경했다고 가정해 보겠습니다.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc '; //SQL select query $sql_stmt .= " WHERE `id` = 5"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number 5 has been successfully updated"; mysqli_close($dbh); //close the database connection ?>
기록 삭제
이제 데이터베이스에서 레코드를 제거하는 예를 살펴보겠습니다. Venus가 우리에 대한 접근 금지 명령을 받았고 우리가 그녀의 연락처 정보를 우리 사이트에서 삭제해야 한다고 가정해 보겠습니다. 데이터베이스.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection failes output error message $id = 4; //Venus's ID in the database $sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; //SQL Delete query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number $id has been successfully deleted"; mysqli_close($dbh); //close the database connection ?>
PHP 데이터 액세스 객체 PDO
PDO는 다음과 같은 다양한 데이터베이스 엔진을 조작할 수 있게 해주는 클래스입니다. MySQL, PostGres, MS SQL Server 등
아래 코드는 PDO 객체를 이용한 데이터베이스 접근 방법을 보여준다.
참고 : 아래 코드에서는 SQL 언어, 배열, 예외 처리 및 foreach 루프에 대한 지식이 있다고 가정합니다.
<?php try { $pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"'); $sql_stmt = "SELECT * FROM `my_contacts`"; $result = $pdo->query($sql_stmt); $result->setFetchMode(PDO::FETCH_ASSOC); $data = array(); foreach ($result as $row) { $data[] = $row; } print_r($data); } catch (PDOException $e) { echo $e->getMessage(); } ?>
이리,
- "try{...catch...}"는 예외 처리 블록입니다.
- $pdo = new PDO("mysql..."은 PDO 객체의 인스턴스를 생성하고 데이터베이스 드라이버, 서버 및 데이터베이스 이름, 사용자 ID 및 비밀번호를 전달합니다.
- "$pdo->setAtt…"는 PDO 오류 모드 및 예외 모드 속성을 설정합니다.
- "$pdo->exec('SET NA…"는 인코딩 형식을 설정합니다.
ODBC ODBC는 Open Database Connectivity의 약자입니다. 다음과 같은 기본 구문을 갖습니다.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
이리,
- "odbc_connect"는 PHP 내장 함수입니다.
- "$dsn"은 ODBC 데이터 소스 이름입니다.
- "$user_name"은 선택 사항이며 ODBC 사용자 이름에 사용됩니다.
- "$password"는 선택사항이며 ODBC 비밀번호에 사용됩니다.
사용된 예는 귀하를 가정합니다.
- 사용 중 Windows OS
- Northwind에 대한 ODBC 링크를 만들었습니다. Microsoft Northwind라는 데이터베이스에 액세스합니다.
다음은 ODBC 데이터 액세스를 위한 구현 코드입니다.
<?php $dbh = odbc_connect('northwind', '', ''); if (!$dbh) { exit("Connection Failed: " . $dbh); } $sql_stmt = "SELECT * FROM customers"; $result = odbc_exec($dbh, $sql_stmt); if (!$result) { exit("Error access records"); } while (odbc_fetch_row($result)) { $company_name = odbc_result($result, "CompanyName"); $contact_name = odbc_result($result, "ContactName"); echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>"; } odbc_close($dbh); ?>
요약
- MySQL 대부분의 웹 호스팅 서버에서 사용할 수 있는 오픈 소스 관계형 데이터베이스 관리입니다.
- PHP에는 작업을 단순화하는 풍부한 내장 함수 모음이 있습니다. MySQL
- PDO는 PHP 데이터 개체의 약어입니다. 동일한 객체를 사용하여 다른 데이터베이스 엔진에 연결하는 데 사용됩니다.
- PHP는 odbc_connect 함수를 사용하여 ODBC를 통해 데이터베이스를 조작합니다.