PHP&MySQL mysqli_query! - DB에 데이터 추가하기!
첫번째. $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을 가지는지 알 수 있기 때문에
공격할 수 있는 공략방법이 노출될 수 있기 때문입니다.
그래서 내부의 시스템을 외부에 보여주는 것은 위험한 행동입니다.
오류를 확인하고 싶다면 파일을 하나 생성해서 거기에서 확인을 하는 것도 나쁘지 않습니다.