'mysqli설치'에 해당되는 글 1건

  1. 2011.07.14 mysqli 설치 by verynyang poppy

mysqli 설치

setup 2011.07.14 14:03

php가 설치된 디렉토리로 간다
#cd /usr/local/php-5.2.14/ext/mysqli

phpize를 실행해준다. 권한이 없다면 permission에러남
#/usr/local/bin/phpize

그럼 이런결과가 나온다
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

그리고나서 설치를 진행한다
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
그리고 컴파일 make

모듈을 복사해둘 디렉토리를 만든다
# mkdir /usr/local/lib/php/extensions

복사를 하자
cp /usr/local/php-5.2.14/ext/mysqli/modules/*.* /usr/local/lib/php/extensions/

php.ini 파일에서 extension directory의 경로와 모듈명을 추가해준다.
나의 경우는 /usr/local/php/lib/아래에 php.ini가 없어서
php의 소스폴더 /usr/local/php-5.2.14아래에 있는
php.ini-dist파일을 복사해서 /usr/local/php/lib/php.ini에 넣고 수정했다. php.ini-dist는 개발용(display_error옵션이 켜져있어 디버깅가능)이고 php.ini-recommended는 운영할때 쓴다.
extension_dir = "/usr/local/lib/php/extensions/"
extension=mysqli.so


아파치 재시작
mysqli가 설치되었는지의 여부는 phpinfo()에서 mysqli가 검색되는지의 여부로 확인할 수 있다.

이렇게 되면 php소스에서 mysqli를 이용한 바인딩변수처리가 가능해지게 된다.
<a.php>
private $db_host = "211.234.56.789";//여기서 포트를 넣으면 에러

private $db_name = "mydbname";
private $db_user = "myid";
private $db_pass = "mypass";

function DBi(){
      $this->mysqli = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name);

    /* check connection */
    if (mysqli_connect_errno()) {
       printf("Connect failed: %s\n", mysqli_connect_error());
       exit();
     }

 }

<b.php>
include_once "a.php";

private $auth;  // 권한값
private $name;
               
//생성자
function AdminPassDB() {
    $this->DBi(); // 디비 접속 초기화.....
    $this->auth = "";        // 권한
}

//mysqli 모듈 설치 후 바인드변수로 받도록 수정 2011.07.14-
function executeLoginResult($tablename, $id, $passwd){

   $query = "select auth, passwd, id from ".$tablename." where id=?";
   $stmt = $this->mysqli->prepare($query);
   $stmt->bind_param('s', $id);  
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   /* bind result variables */
   $stmt->bind_result($authr, $passwdr, $idr);

   if($stmt->num_rows > 0){  // 성공시 권한값 추출
      while($stmt->fetch()){
           if($passwd!=$passwdr || $id!=$idr){
             $this->auth = "ID";//비번이 일치하지 않을 때
           }else {
             $this->auth = $authr;
             $this->name=$namer;
             $this->email=$emailr;
           }
      }
    }else{
      $this->auth = "NOTHING"; // 아이디 패스워드 모두 없을
    }
    $stmt->close();
    return $this->auth;

  }





Posted by verynyang poppy


티스토리 툴바