PHP는 MySQL에 연결LOGIN

PHP는 MySQL에 연결

PHP 5 이상에서는 다음 방법을 사용하여 MySQL에 연결하는 것이 좋습니다.

MySQLi 확장("i"는 개선됨을 의미)

PDO (PHP 데이터 개체)

PHP 초기 버전에서는 MySQL 확장을 사용합니다. 그러나 이 확장은 2012년에 더 이상 사용되지 않습니다.

PDO에 대한 전체 소개는 PHP 참조 매뉴얼의 PHP PDO를 참조하세요.

MySQLi를 사용해야 할까요, 아니면 PDO를 사용해야 할까요?

짧은 답변이 필요한 경우 "편한 답변을 사용하세요."

MySQLi와 PDO에는 고유한 장점이 있습니다.                              12개의 서로 다른 데이터베이스 지원 MySQL 지원

연결 용이 지원 안 됨

객체 매핑 지원 지원 지원 안 됨

성능                                                                 지원

따라서 PDO의 다양한 방법과 속성은 더욱 다양하며 다양한 데이터베이스의 작동을 고려해야 하며 적용 범위가 더 넓습니다. 프로젝트가 여러 데이터베이스 간에 전환해야 하는 경우 권장됩니다. 이런 방식으로 PDO를 사용하려면 연결 문자열과 부서 쿼리 문만 수정하면 됩니다. 일련의 MySQLi 클래스 및 메소드는 MySQLi를 통해서만 MySQL 데이터베이스를 작동할 수 있습니다. 다른 데이터베이스를 사용하는 경우 쿼리를 포함한 모든 코드를 다시 작성해야 합니다.

둘 다 객체 지향이지만 MySQLi는 API 인터페이스도 제공합니다.

둘 다 준비된 진술을 지지합니다. 준비된 명령문은 SQL 주입을 방지할 수 있으며 웹 프로젝트 보안에 매우 중요합니다.

MySQLi 및 PDO가 MySQL 인스턴스에 연결

이 장과 다음 장에서는 다음 세 가지 방법을 사용하여 PHP 운영을 시연합니다. MySQL:

MySQLi(객체 지향)

MySQLi(프로시저 지향)

PDO


MySQLi 설치

Linux 및 Windows: php5 mysql 설치 패키지 MySQLi 확장은 대부분의 경우 자동으로 설치됩니다.

설치 세부 사항은 http://php.net/manual/en/mysqli.installation.php를 확인하세요.

.php 파일 확장자를 가진 PHP 소프트웨어(PhpStorm)를 사용할 수 있습니다. phpinfo()를 작성하고 클릭하여 브라우저를 열어 설치가 성공했는지 확인하세요.

105.jpg


PDO 설치

설치 세부 사항은 http://php.net/manual/en/pdo.installation.php를 확인하세요.

설치 성공 여부를 확인할 수 있습니다. phpinfo()를 통해 :

106.jpg

MySQL에 연결

MySQL 데이터베이스에 액세스하기 전에 다음이 필요합니다. 먼저 데이터베이스 서버에 연결하려면:

예제(MySQLi - 객체 지향)

<?php
// 三个参数
$servername = "localhost";   // 服务器地址(域名、IP)
$username = "username";   // 数据库用户名 
$password ="password";   // 数据库密码(可能为空)
// 创建连接
$conn =new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
echo "连接成功";
?>

위의 객체 지향 예에서 $connect_error는 PHP에 있습니다. 5.2.9 및 5.3.0이 추가되었습니다. 이전 버전과의 호환성이 필요한 경우 다음 코드 대체를 사용하십시오.

// 연결 감지
if (mysqli_connect_error()) {
die(" 데이터베이스 연결 실패: " . mysqli_connect_error());

인스턴스(MySQLi - 절차적)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = mysqli_connect($servername,$username, $password);
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
?>

위의 프로세스 중심 예에서 데이터베이스에 연결할 때 연결하려는 데이터베이스의 이름을 직접 선택하려는 경우 네 번째 매개변수가 있습니다. $db_name = "db_name"; // 데이터베이스 이름

// 연결 만들기
$conn = mysqli_connect($servername, $username, $password, $db_name);

인스턴스(PDO)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB",$username, $password);
    echo "连接成功";
}
catch(PDOException $e)  // PDOException 错误处理 
{
   echo $e->getMessage();  // getMessage()取得文本化的错误信息 
}
?>
위의 PDO 인스턴스에서는 데이터베이스(myDB)를 지정했습니다. PDO는 연결 프로세스 중에 데이터베이스 이름을 설정해야 합니다. 지정하지 않으면 예외가 발생합니다.        

연결 닫기

스크립트가 실행된 후 자동으로 연결이 닫힙니다. 다음 코드를 사용하여 연결을 닫을 수도 있습니다.

인스턴스(MySQLi - 객체 지향)

$coon->close();

인스턴스(MySQLi - 프로시저 지향)

mysql_close($coon);

인스턴스(PDO)

mysql_close($coon);


부록

부록 데이터베이스에 연결하고 쿼리 결과를 얻기 위한 이전 전체 코드(참고용):

<?php
$conn = mysqli_connect($servername,$username,$password);  // 获取连接
if($conn){  //判断是否连接
   mysqli_select_db($conn,"db_name"); // 选择一个数据库
   mysqli_query($conn,"set names utf8");   // 查询输出要使用utf8的编码格式,避免乱码
   $sql = "select * from product;";  // 查找到数据库的product表()
   $result = mysqli_query($conn,$sql);  // 从键连获取到数据库的字表 
   while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){   // MYSQLI_ASSOC返回键值形式数组
      echo $row["需要输出的表中列的名称"]; 
   } 
   mysqli_free_result($result);   // 释放内存在 
   mysqli_close($conn);   // 关闭连接 
   echo "成功"; 
   }else{ 
   echo "失败"; 
}; 
?>


다음 섹션
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
코스웨어