본문 바로가기
Web/PHP

[PHP&SQL] PHP 와 MYSQL 연동하기 , API 사용 및 에러 확인

by 서상혁 2019. 7. 27.

뭐든지 API 이용이 짱이다ㅎㅎ

 

구글 검색창에 php mysql api 를 검색하면 나오는 사이트 php.net, 여기 접속을 하면

** https://www.php.net/manual/en/mysqlinfo.api.choosing.php

 

연동해 주는 3가지 방식의 api들을 소개해주고있다.

 

여기서 맨 아래 mysql 은 오래돼서 조만간 멸종 예정이라한다.

(공부 열심히 해놔도 하루하루 새로운게 생기고 없던게 사라지는듯... 프로그래머는 평생 공부해야 되나보다.)

 

msyqli 방식에는 2가지 방식이 있다.

객체지향 방식과 함수 방식.

객체지향 방식에 대해 보자. (더 자세한 내용이 궁금하면 조금 전 올린 php.net 찾아보면 구체적인 api 설명들이 있다.

 


분석

 

$mysqli = new mysqli("example.com""user""password""database"); 

- php에서 mysqli 에 접속한다는 뜻이다. 

 

1번째 인자 "example.com"은 host 명이다. (데이터베이스 서버의 주소) 우리는 공부하는 입장이니 대부분 php와 DB가 같은 환경에 있을 것이고 localhost를 적을 것이다.

2,3 번째 인자 userpassword는 각각 데이터베이스의 아이디, 비밀번호 이며

4번쨰 인자는 사용할 데이터베이스명이다.

 

$result $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");

- 객체지향 방식을 이용해 DB서버를 연결, 쿼리를 전해주고 $result 라는 변수에 저장한다.

 

$mysqli->query("쿼리문") 로 조금 전에 접속했던 mysql 에 query문을 넣어준다.

지금 예시의 경우에는 database 에서 DUAL 이라는 테이블에 SELECT문을 실행하는 것이다.

 

$row $result->fetch_assoc();

- $row 라는 변수에 배열로 리턴을 받는다.

 

fetch 는 '꺼내다' 라는 뜻으로 주로 sql에서 자료를 추출해서 사용할 때 while문과 함께 많이 이용하는 듯 하다.

fetch_assoc() 에서 assoc() 은 컬럼명을 직접 사용하여 리턴하겠다는 뜻인데

https://sbumseo.tistory.com/84

이분께서 잘 설명해 주신 글을 참조하면 될 것 같다. (좋은자료 올려주셔서 감사합니다.)

 

echo htmlentities($row['_message']);

- $row 를 html 형식 그 자체로 출력한다.

 

echo 는 print 를 의미하고 htmlentities는 html 형식을 적용하지 않고 문자 그대로 출력하겠다는 의미이다.

이것도 자세한 설명은 이곳을 참고

https://devjhs.tistory.com/237 

(좋은자료 올려주셔서 감사합니다 2.)

 

* 에러를 확인하는 방법

 

if ($mysqli->connect_errno) {         
    
printf("Connect failed: %s\n"$mysqli->connect_error
);     
    exit();
}

// connect_errno 는 가장 마지막에 일어난 오류를 반환한다.

 

혹은

if($result == false){

    echo mysqli_error($mysqli // *아까 연결했던 커넥션));

 // 허나 이 방법은 개발하는 상황에서나 쓰지 실제 사용 용도는 보안상 최악이라고 한다.

 

 

 

 

* 출처 : 생활코딩  egoing 생산자님 / php.net /        감사합니다.

728x90

'Web > PHP' 카테고리의 다른 글

[PHP] 출력하기 축약형 <?=?> 태그  (0) 2019.08.03
[PHP&MYSQL] mysqli_fetch  (0) 2019.08.02
[PHP] POST 방식과 GET 방식  (0) 2019.07.31
[PHP] PHP 개발환경 구축  (0) 2019.07.29
[PHP] var_dump() 함수란?  (0) 2019.07.27

댓글