작성
·
8K
0
mysqli_connect() 함수 에러 같은데 구글에서 찾아서 php.ini extension=mysqli 주석 처리를 풀어 보라고 해서 풀었더니
오류는 안나오는데 브라우저에 메뉴가 안나오네요.
require_once 'bootstrap/app.php'; 주석처리하면 메뉴가 나오고 주석처리 안하면 또 안나오고 ...
해결 방법이 있나요/./
답변 5
0
윈도우 사용자분들은 mysqli의 경로를 직접 지정해주셔야합니다.
extension=mysqli
아래로 변경하시면 됩니다.
extension=C:\php8\ext\php_mysqli.dll
0
친절하고 빠른 답변 감사드려요.
아직 해결을 못해서 일단 폴더 자체를 MAMP로 옮겨서 강의 진행하고 있습니다.
강의 다 듣고 후기 꼭 남기겠습니다.
0
네, 그렇습니다. extension_loaded('mysqli'); 의 결과가 false 가 나온다면 로드하지 못한 것입니다.
1. php.ini 에서 extension=mysqli 의 주석이 해제되어 있어야 하며 , extension_dir 에 설정되어 있는 폴더에 php_mysqli.dll 이 존재하여야 합니다. 이것이 첫 번째 해결 방법입니다.
2. 두 번째 해결 방법은 PHP 매뉴얼을 찾아보는 것이 있습니다. Windows 와 Linux 에서의 해결 방법이 다를 수 있기 때문입니다. 확장마다 설치방법이 매뉴얼에 나와있는데, mysqli 확장 매뉴얼을 열고 Installation 에 진입하여 설치 방법을 확인합니다.
https://www.php.net/manual/en/mysqli.installation.php
3. 마지막으로는 PECL(PHP Extension Community Library)에서 찾아보는 방법입니다. 해당 사이트는 php extensions 가 저장되어 있는 Repository 입니다.
다만 해당 사이트 사용시 주의해야 할 점은 반드시 현재 사용하고 있는 php 의 버전과 64, 32비트, Thread Safe 를 알아야하고, 이에 맞는 확장을 설치해야 합니다. 위와 같은 사항을 확인하기 위해서는 phpinfo() 함수를 사용합니다.
-- 좋은 질문 감사합니다. 이 질문을 강의 소개 - 참고 할만한 질의 응답에 추가합니다.
0
extension_loaded('mysqli');
했을때 bool(false)가 나오면 mysqli가 로드 되지 않았다는 뜻인가요?
var_dump(mysqli_connect('localhost', 'root', 'root', 'db_test'));
Uncaught Error: Call to undefined function mysqli_connect() in C:\php\PDO\index
똑같은 에러가 나오네요.
제가 VSCODE 익스텐션에서 Mysql 관련된 익스텐션 설치했고,
mysqli 관련 익스텐션은 없어서 설치를 안했어요.
php 설치할 때 php.ini 파일에서 무슨 설정을 해줘야 하는건가요?
0
그러면 혹시 mysqli Extension 을 설치하셨다면, 프로젝트 이외에 독립적으로 테스트를 돌려보시는 건 어떨까요? mysqli functions 를 함수 할 수 있는 코드를 별도의 php 파일을 만들어서 실험해보시는 것도 좋습니다.
<?php
// 익스텐션이 로드가 되었는지 체크해보세요.
extension_loaded('mysqli');
/////
// -> class mysqli#1
var_dump( mysqli_connect('localhost', 'root', 'root', 'myapp_test') );
안녕하세요 , 같은 문제를 겪고 있다가 해결하여 보내드립니다.
밑에분 말씀대로 extension=mysqli 주석을 제거해도 안되는 경우였기에
아래처럼 하니 해결 되었습니다
구동 os : ubuntu ,
apt install php-mysqli 로 설치하셔서 사용하면 됩니다
이외 CentOs 는 yum 명령어를 사용하여 설치 ,현재 이용중인 os맞게 php-mysqli를 설치하시면 쉽게 해결됩니다