PHP&MySQL

PHP&MySQL mysqli_query! - DB에 데이터 추가하기!

루체도 2019. 9. 7. 22:30

 첫번째. $link

  첫번째 인자는 mysqli_connect의 결과를 넣어줍니다.

 

 두번째. $query

  문자열. 두번째 자리에는 sql문을 작성을 합니다.

 

 세번째. return 값
  false나 true   || mysqli_result로 반환이 된다 
  boolean값으로 반환되기 때문에 if문으로 전송이 성공했는데 실패했는지 알아낼 수 있습니다.

 

위 코드대로 작성을 하면 이렇게 되는 것을 확인할 수가 있습니다.

이런 코드를 작성을 하다가 실수를 할 수도 있게됩니다.

그런 문제에 더 가까이 다가가는 방법을 설명해드리겠습니다.

원래는 함수에 그냥 작성했던 것을 변수로 빼서 작성을 했습니다.

이렇게 하면 좋은점은 나중에 문제가 발생했을 때 변수를 출력을 해서 문제를 확인할 수 있게됩니다.

echo로 웹페이지에 출력을 해도 php는 어디서 문제가 발생했는지 알려주지 않기 때문에

웹페이지에 뜬 코드를 MySQL Monitor에 붙여넣어서 오류가 어디서 발생하는지 알아내야 합니다.

이런 오류를 이렇게 알아내는 것보다 웹페이지에서 확실하게 보이는게 편하지 않을까요??

how to get error in php mysqli라고 검색을 해봅시다.

https://www.php.net/manual/en/mysqli.error.php

 

PHP: mysqli::$error - Manual

The mysqli_sql_exception class is not available to PHP 5.05I used this code to catch errors query($query);if (!$res) {   printf("Errormessage: %s\n", $mysqli->error);}?>The problem with this is that valid values for $res are: a mysqli_result object , true

www.php.net

이렇게 작성을 해주시면 아까 작성했던 변수 중에 오류가 발생하면 어디서 오류가 나는지 알려주게 됩니다.

개발할 때는 이런식으로 작성을 해줘도 되는데 실제로 서비스를 할 때는 이렇게 echo로 출력을 해주면 안됩니다.

공격자가 데이터베이스가 어떤 column을 가지고 어떤 table을 가지는지 알 수 있기 때문에

공격할 수 있는 공략방법이 노출될 수 있기 때문입니다.

그래서 내부의 시스템을 외부에 보여주는 것은 위험한 행동입니다.

오류를 확인하고 싶다면 파일을 하나 생성해서 거기에서 확인을 하는 것도 나쁘지 않습니다.