개발자

PHP와 mySQL 연동 오류

2023년 06월 08일조회 127

php랑 SQL이랑 연동해서 웹 사이트를 만들고 있는데 계속 오류가 떠서 검색해봤는데 php.ini를 수정하라고ㅠ해서 하고 했는데도 계속 오류가 뜨는데 이유를 모르겠습니다 css한 게 나오긴 하는데 다른 글씨들이 오류 문자로 나와서 어떻게 할 지 모르겠는데 해결 방법이 있을까요 프로그램은 xampp 사용 중입니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

김현진님의 프로필 사진

먼저 에러 메세지를 잘 읽어보시길 바랍니다. 2개의 warning과 1개의 error가 표시되고 있는데 모두 CapstoneWindex.php 파일에 문제가 있다고 알려주고 있네요 어느 라인에서 문제가 되고 있는지 어떤 문제가 있는지도 함께 알려주고 있기 때문에 하나씩 확인해보시면 됩니다. 먼저 Capstone/db.php 파일의 위치나 이름에 문제가 없는지 확인해야겠습니다. include_path 변수에 적힌 경로명이 잘못되었는지도 확인이 필요하겠습니다. mp() 함수가 제대로 정의되어 있을까요?

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 08일

말씀하신대로 처음부터 경로 확인을 해서 고치니 됐습니다 정말 감사합니다

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 08일

하다가 보니 db에서 정보를 못 읽어오는 거 같아서 찾아 봤는데 vs 코드에서 저 웹 페이지에 나온대로 오류가 나옵니다 그래서 주소를 바꾸니 다시 웹페이지에서 저 오류가 나옵니다 어떻게 해야되는지 아실까요 ??

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

웹페이지에서의 오류는 php가 실행되고 나서 로컬 c 드라이브에서 부터 파일을 찾아 접근하려고 하니 접근할 수 없어서 오류가 나는 것입니다 vscode에서는 c드라이브를 접근 할 수 있으니 오류가 나지 않는 것이고요 이 경로를 수정해서 웹에서는 오류가 나지 않고 vscode에서 오류가 난다고 하셨는데 수정한 경로가 웹서버와 파일디렉토리 간에 다르게 되어 있어서 그럴 수 있습니다. 환경설정에서 기본 경로가 설정되었거나 서버와 작업 디렉토리가 다른지 확인이 필요해보입니다

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

서버와 작업 디렉토리 확인은 어디서 해야하나요.. 어떤 거의 환경설정에서 확인해야하나요 ?

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

지금 캡쳐의 에러 메시지를 보니 db.php 파일의 경로가 C:/xampp/htdocsC:/xampp/htdocs/Capstone/db.php 으로 나오네요 이상하죠? C:/xampp/htdocs가 두번 반복되고 있습니다. 이미 기본 경로가 C:/xampp/htdocs으로 설정되어 있는 겁니다. vscode에서만 에러가 나는 경우의 import 경로는 어떻게 하셨을까요? 그 때의 경로에 맞게 db.php 파일의 위치를 옮기는 것도 하나의 방법일 수 있습니다.

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

/Capstone/db.php 라고 했을 때 vs code에서만 오류가 나왔습니다

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

파일 전부 다 Capstone 파일 안에 같이 있습니다

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

/Capstone/db.php라고 넣으셨다면 vscode는 C:/xampp/htdocs/Capstone/Capstone/db.php을 찾았기 때문에 안 된겁니다. ./db.php로 해보시겠어요? 현재 파일의 위치와 동일한 폴더내의 파일을 의미합니다

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

인터넷에서 참고한 코드에서는 include ($_SERVER[‘DOCUMENT_ROOT’]. “/db.php”로 되있었는데 앞에 $_SERVER[‘DOCUMENT_ROOT’]. 이 부분 지우고 ./db.php 로 하니 정상적으로 작동 되는데 저 앞에 부분은 없어도 되는건가요 ??

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

네 상관없습니다. 참고하신 코드는 절대경로를 사용하는 것이고 ./db.php는 상대경로를 사용하는 것일뿐 어느쪽을 사용하던 괜찮습니다. 다만 이번처럼 개발 환경과 서버에서의 경로가 달라지면 제대로 동작하지 않는 문제가 생길 수 있으니 상대경로를 이용하는 것이 이를 방지하기 도움이 되겠네요

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

Warning: Underfined array key 배열 키를 못 찾는 다는 건 알겠는데 해결 방법은 모르겠는데 알려주실 수 있으실까요 ?

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

질문을 하실 때 보다 자세히 이야기 해주셔야 도움을 드리기 쉽니다. 코드의 동작이나 에러의 경우 전체 에러 메시지나 코드도 함께 첨부해주셔야 어떤 상황인지 파악할 수 있습니다. 배열키를 찾을 수 없다는 경고만 가지고 질문을 주시면 배열키를 확인하고 정확한 값을 넣으라는 말씀밖에 드릴 수 없습니다

유재영님의 프로필 사진

유재영

작성자

배재대학교 인터넷소프트웨어학2023년 06월 09일

6 $username = $_POST['name']; 7 $userpw = password_hash($_POST['pw'], PASSWORD_DEFAULT); 8 $title = $_POST['title']; 9 $content = $_POST['content']; 10 $date = date('Y-m-d'); PHP Warning: Undefined array key "title" in C:\xampp\htdocs\Capstone\write_ok.php on line 8 Warning: Undefined array key "name" in C:\xampp\htdocs\Capstone\write_ok.php on line 6 Warning: Undefined array key "pw" in C:\xampp\htdocs\Capstone\write_ok.php on line 7 Warning: Undefined array key "title" in C:\xampp\htdocs\Capstone\write_ok.php on line 8 Warning: Undefined array key "content" in C:\xampp\htdocs\Capstone\write_ok.php on line 9 이렇게 나옵니다

김현진님의 프로필 사진

김현진

퍼블리 소프트웨어엔지니어2023년 06월 09일

$_POST에 값이 있는지부터 확인해야할거 같습니다. $_POST에 코드상의 키가 하나도 없는듯한데 제대로 값이 들어갔는지 확인해보세요

커리어리 AI 봇님의 프로필 사진

당신의 질문에서는 정확한 오류 메시지나 원인을 파악하기 어렵습니다. 하지만 일반적으로 PHP와 MySQL 연동에 문제가 생긴 경우, 다음과 같은 사항들을 점검해보는 것이 도움이 될 수 있습니다. 1. PHP와 MySQL 확장기능 활성화: XAMPP를 사용하는 경우 기본적으로 PHP와 MySQL 확장 기능이 활성화되어 있어야 합니다. php.ini 파일에서 'extension=mysqli' 또는 'extension=pdo_mysql'이 주석처리(앞에 ;가 붙어있음) 되어 있지 않은지 확인해보세요. 2. DB 연결 정보 확인: 데이터베이스에 연결하기 위해 사용하는 호스트명, 사용자명, 비밀번호, 데이터베이스명 등이 올바른지 확인하세요. 보통 localhost를 호스트로 사용하며, XAMPP의 기본 DB 사용자명과 비밀번호는 각각 'root'와 '' (비워둠)입니다. 3. 코드 오류 확인: PHP 코드 내에서 DB 연결 및 쿼리 실행 부분이 올바르게 작성되었는지 확인하세요. mysqli 또는 PDO를 사용하여 DB와 연결하고 있을 텐데, 이 부분에 문제가 있을 수 있습니다. 4. 오류 메시지 확인: 오류가 발생할 때 나타나는 오류 메시지를 잘 살펴보세요. 오류 메시지는 문제의 원인을 찾는 데 큰 도움이 됩니다. PHP에서 error_reporting와 ini_set 함수를 사용해 모든 오류를 출력하도록 설정할 수 있습니다. 이상의 사항들을 점검해보세요. 만약 여전히 문제가 해결되지 않는다면, 구체적인 오류 메시지와 함께 다시 질문해주시면 좀 더 자세한 도움을 드릴 수 있을 것입니다.

1
2
3
#4
error_reporting(E_ALL);
ini_set('display_errors', 1);

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!