> 백엔드 개발 > PHP 튜토리얼 > PHP를 MySQL에 연결하는 방법 요약

PHP를 MySQL에 연결하는 방법 요약

WBOY
풀어 주다: 2023-04-11 09:10:02
앞으로
6588명이 탐색했습니다.

이 기사에서는 PHP와 MySQL 간의 연결 관련 내용을 주로 소개하는 PHP 비디오 튜토리얼에 대한 관련 지식을 제공합니다. PHP와 MySQL 간의 연결을 위한 세 가지 API 인터페이스, 즉 PHP MySQL 확장이 있습니다. 및 PHP 데이터 객체(PDO)에 대해 별도로 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

PHP를 MySQL에 연결하는 방법 요약

추천 학습: "PHP"

PHP의 mysql_connect 문, MySQLi 문 또는 PDO를 사용하여 MySQL 데이터베이스의 데이터에 액세스할 수 있어야 합니다. MySQL Server에 연결하려면 MySQL에 연결하는 방법을 살펴보겠습니다.

PHP를 MySQL에 연결하는 데는 세 가지 API 인터페이스가 있습니다. 즉, PHP의 MySQL 확장, PHP의 mysqli 확장, PHP 데이터 개체(PDO) 다음은 다양한 시나리오에서 선택을 준비하기 위한 위의 세 가지 연결 방법을 요약한 것입니다. 최고의 솔루션을 생각해 보세요.

1. MySQL 확장

PHP의 MySQL 확장은 PHP 애플리케이션이 MySQL 데이터베이스와 상호 작용할 수 있도록 설계 및 개발된 초기 확장입니다.

MySQL 확장은 절차 지향 인터페이스를 제공하며 MySQL 4.1.3 이하 버전용으로 설계되었습니다.

따라서 이 확장은 MySQL 4.1.3 또는 최신 데이터베이스 서버와 상호 작용할 수 있지만 이후 MySQL 서버에서 제공되는 일부 기능은 지원하지 않습니다.

너무 오래되고 안전하지 않기 때문에 최신 mysqli로 완전히 대체되었습니다.

 //自 PHP 5.5.0 起已废弃。
    $mysql_conf = array(
        'host'    => '127.0.0.1:3306', 
        'db'      => 'test', 
        'db_user' => 'root', 
        'db_pwd'  => 'root', 
        );
    $mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
    if (!$mysql_conn) {
        die("无法连接到数据库:\n" . mysql_error());//诊断连接错误
    }
    mysql_query("set names 'utf8'");//编码转化为UTF-8
    //判断连接的数据库是否存在
    $select_db = mysql_select_db($mysql_conf['db']);
    if (!$select_db) {
        die("无法连接到数据库:\n" .  mysql_error());
    }
    $sql = "select * from user;";
    $res = mysql_query($sql);
    if (!$res) {
        die("could get the res:\n" . mysql_error());
    }
    
    while ($row = mysql_fetch_assoc($res)) {
        print_r($row);
    }
    
    mysql_close($mysql_conn);
로그인 후 복사

2. mysqli 확장

PHP의 mysqli 확장은 때때로 MySQL 강화 확장이라고 부르며 MySQL4.1.3을 사용하는 데 사용할 수 있습니다. 또는 업데이트된 버전의 새로운 고급 기능.

특징으로는 객체 지향 인터페이스, 준비된 명령문 지원, 다중 명령문 실행 지원, 트랜잭션 지원, 향상된 디버깅 기능, 임베디드 서비스 지원, SQL 주입 문제를 완전히 해결하는 전처리 방법 등이 있습니다.

그러나 단점도 있습니다. 즉, mysql 데이터베이스만 지원한다는 것입니다.

다른 데이터베이스를 운영하지 않는다면 의심할 여지없이 이것이 최선의 선택입니다.

//PHP与Mysqli扩展,面向过程、对象
 $mysql_conf = array(
     'host'    => '127.0.0.1:3306', 
     'db'      => 'test', 
     'db_user' => 'root', 
     'db_pwd'  => 'joshua317', 
     );
 
 $mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
 if ($mysqli->connect_errno) {
     die("无法连接到数据库:\n" . $mysqli->connect_error);//诊断连接错误
 }
 $mysqli->query("set names 'utf8';");//编码转化utf8
 $select_db = $mysqli->select_db($mysql_conf['db']);
 if (!$select_db) {
     die("could not connect to the db:\n" .  $mysqli->error);
 }$sql = "select uid from user where name = 'joshua';";
 $res = $mysqli->query($sql);
 if (!$res) {
     die("sql error:\n" . $mysqli->error);
 }
  while ($row = $res->fetch_assoc()) {
         var_dump($row);
     }
 
 $res->free();
 $mysqli->close();
로그인 후 복사

3. PDO 확장

PDO는 PHP Data Objects의 약어이며 PHP 애플리케이션의 데이터베이스 추상화 계층 사양입니다.

PDO는 PHP 애플리케이션이 연결하려는 특정 데이터베이스 서버 시스템 유형에 신경 쓰지 않도록 하는 통합 API 인터페이스를 제공합니다. 즉, PDO의 API를 사용하면 필요할 때마다 데이터베이스 서버를 원활하게 전환할 수 있습니다. Oracle에서 MySQL까지, 약간의 PHP 코드만 수정하면 됩니다.

기능은 JDBC, ODBC, DBI 등의 인터페이스와 유사합니다. 마찬가지로 SQL 주입 문제도 해결하고 보안도 좋습니다.

그러나 일부 다중 문 실행 쿼리는 지원되지 않는 단점도 있습니다(그러나 이러한 상황은 드뭅니다).

//PHP与PDO扩展,面向过程、对象
  $mysql_conf = array(
      'host'    => '127.0.0.1:3306', 
      'db'      => 'test', 
      'db_user' => 'root', 
      'db_pwd'  => 'joshua317', 
      );
  $pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//创建一个pdo对象
  $pdo->exec("set names 'utf8'");
  $sql = "select * from user where name = ?";
  $stmt = $pdo->prepare($sql);
  $stmt->bindValue(1, 'joshua', PDO::PARAM_STR);
  $rs = $stmt->execute();
  if ($rs) {
      // PDO::FETCH_ASSOC 关联数组形式
      // PDO::FETCH_NUM 数字索引数组形式
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
          var_dump($row);
      }
  }
  
  $pdo = null;//关闭连接
로그인 후 복사

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP를 MySQL에 연결하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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