복붙노트

정의되지 않은 함수 mysql_connect ()

PHP

정의되지 않은 함수 mysql_connect ()

필자는 php5-mysql을 설치하고 (MySQL / Apache 2를 다시 시작한) 적성 검사를 실행했지만 여전히이 오류가 발생합니다.

phpinfo ()는 /etc/php5/apache2/conf.d/pdo_mysql.ini 파일이 파싱되었다고 말합니다.

해결법

  1. ==============================

    1.글쎄, 이것은 당신의 기회입니다! PDO가 준비된 것처럼 보입니다. 대신 사용하십시오.

    글쎄, 이것은 당신의 기회입니다! PDO가 준비된 것처럼 보입니다. 대신 사용하십시오.

    PHP MySQL 확장 모듈이로드되고 있는지 확인하십시오 :

    <?php
        phpinfo();
    ?>
    

    거기에 없다면 php.ini 파일에 다음을 추가하십시오 :

    extension=php_mysql.dll
    
  2. ==============================

    2.우분투에서이 태그를 붙인 것을 볼 수 있습니다. 대부분의 MySQL 드라이버 (및 MySQL) 가능성이 설치되어 있지 않습니다. SSH 또는 터미널 액세스 및 sudo 권한이 있다고 가정하면 서버에 로그인하여 다음을 실행하십시오.

    우분투에서이 태그를 붙인 것을 볼 수 있습니다. 대부분의 MySQL 드라이버 (및 MySQL) 가능성이 설치되어 있지 않습니다. SSH 또는 터미널 액세스 및 sudo 권한이 있다고 가정하면 서버에 로그인하여 다음을 실행하십시오.

    sudo apt-get install mysql-server mysql-client php5-mysql
    

    MySQL 패키지 나 php5-mysql 패키지가 이미 설치되어있는 경우, 업데이트됩니다.

    최신 정보

    이 대답은 가끔씩 클릭이 발생하기 때문에 PHP 7을 포함하도록 업데이트 할 예정입니다. PHP 7은 MySQL 용으로 다른 패키지가 필요하므로 apt-get 명령에 다른 인수를 사용해야합니다.

    sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql
    

    그리고 중요하게 mysql_connect ()는 PHP v5.5.0부터 사용되지 않습니다. 공식 문서는 다음을 참조하십시오 : PHP : mysql_connect ()

  3. ==============================

    3.누군가가 docker php 공식 이미지의 문제로 여기에 온 경우, 아래 명령을 docker 컨테이너에 입력하십시오.

    누군가가 docker php 공식 이미지의 문제로 여기에 온 경우, 아래 명령을 docker 컨테이너에 입력하십시오.

    $ docker-php-ext-install mysql mysqli pdo pdo_mysql
    

    자세한 내용은 위의 링크를 참조하십시오. PHP 확장 섹션을 설치하는 방법 (하지만 약간 어렵습니다 ...).

    또는이 문서가 도움이 될 수도 있습니다.

  4. ==============================

    4.이미 PHP7을 사용하고있는 경우, 이전에는 더 이상 사용되지 않는 함수 mysql_ *가 완전히 제거되었으므로 대신 PDO-functions 또는 mysqli_ * 함수를 사용하여 코드를 업데이트해야합니다.

    이미 PHP7을 사용하고있는 경우, 이전에는 더 이상 사용되지 않는 함수 mysql_ *가 완전히 제거되었으므로 대신 PDO-functions 또는 mysqli_ * 함수를 사용하여 코드를 업데이트해야합니다.

    그게 가능하지 않다면, 임시 해결책 파일로 mysqli _ * () - 함수를 사용하여 이전 함수를 다시 만든다. fix_mysql.inc.php

  5. ==============================

    5.시험:

    시험:

    <?php
      phpinfo();
    ?>
    

    페이지를 실행하고 mysql을 검색하십시오. 발견되지 않으면 쉘에서 다음을 실행하고 Apache 서버를 다시 시작하십시오.

    sudo apt-get install mysql-server mysql-client php5-mysql
    

    또한 apache2.conf (또는 conf.d / php.ini) 파일의 다음 위치에있는 모든 행의 주석을 해제했는지 확인하십시오.

    ;extension=php_mysql.so
    

    extension=php_mysql.so
    
  6. ==============================

    6.나는 또한 정의되지 않은 MySQL_connect ()의 동일한 문제로 인해 막혔다. PHP.ini 파일을 변경하려고했지만 같은 오류가 발생했다. 그런 다음 필자는 코드를 depreciated php 함수에서 새로운 함수로 변경 한이 솔루션에 왔습니다.

    나는 또한 정의되지 않은 MySQL_connect ()의 동일한 문제로 인해 막혔다. PHP.ini 파일을 변경하려고했지만 같은 오류가 발생했다. 그런 다음 필자는 코드를 depreciated php 함수에서 새로운 함수로 변경 한이 솔루션에 왔습니다.

    $con=mysqli_connect($host,$user,$password);
    
    mysqli_select_db($con,dbname); 
    //To select the database
    
    session_start(); //To start the session
    
    $query=mysqli_query($con,your query); 
    //made query after establishing connection with database.
    

    이게 당신을 도울 수 있기를 바랍니다. 이 솔루션은 나를 위해 올바르게 작동합니다.

  7. ==============================

    7.내 생각 엔 PHP 설치가 MySQL 지원으로 컴파일되지 않았을 것입니다.

    내 생각 엔 PHP 설치가 MySQL 지원으로 컴파일되지 않았을 것입니다.

    구성 명령 (php -i | grep mysql)을 확인하십시오. '--with-mysql = shared, / usr'과 같은 것이 보일 것입니다.

    자세한 지침은 http://php.net/manual/en/mysql.installation.php에서 확인할 수 있습니다. 하지만, 나는 @와 노바 크가 제안한 해결책으로 가고 싶습니다.

    그래도 PDO를 사용하려면 MySQL 지원이 필요하다고 생각합니다.

  8. ==============================

    8.질문은 우분투로 태그가 붙지 만, 확장자 = mysqli.dll을 주석으로 처리하는 해결책은 윈도우에만 해당됩니다. 나는 혼란 스럽다?!, 어쨌든, 제일 먼저 달리는 것은? php phpinfo?> 그리고 구성 표제 아래에서 mysql *을 검색하십시오. 당신이 그런 것을 보지 않는다면 당신은 php-mysql을 설치하거나 사용하지 않았 음을 의미한다. 그래서 먼저 php-mysql을 설치하십시오.

    질문은 우분투로 태그가 붙지 만, 확장자 = mysqli.dll을 주석으로 처리하는 해결책은 윈도우에만 해당됩니다. 나는 혼란 스럽다?!, 어쨌든, 제일 먼저 달리는 것은? php phpinfo?> 그리고 구성 표제 아래에서 mysql *을 검색하십시오. 당신이 그런 것을 보지 않는다면 당신은 php-mysql을 설치하거나 사용하지 않았 음을 의미한다. 그래서 먼저 php-mysql을 설치하십시오.

    sudo apt get php-mysql 설치하기

    이 명령은 이미 설치 한 PHP에 따라 php-mysql을 설치하므로 버전에 대한 걱정은 없습니다!

    그런 다음 php.ini 파일에 유닉스 관련 솔루션이 온다.

    extension=msql.so
    

    msql.so가 / usr / lib / php / 에 있는지 확인하십시오. 그밖에

    extension=path/to/msql.so
    

    마지막으로 아파치와 mysql 서비스를 다시 시작하면 phpinfo 페이지의 Configurations라는 제목 아래에 mysql 섹션이 보일 것이다.

  9. ==============================

    9.php.ini 파일에서

    php.ini 파일에서

    이것을 바꿔라.

    ;extension=php_mysql.dll
    

    으로

    extension=php_mysql.dll
    
  10. ==============================

    10.내가 작업하고 있던 프로젝트가 PHP 5.6에서 개발되었고 설치 후 프로젝트가 php7.1에서 실행될 수 없기 때문에이 오류가 발생했습니다.

    내가 작업하고 있던 프로젝트가 PHP 5.6에서 개발되었고 설치 후 프로젝트가 php7.1에서 실행될 수 없기 때문에이 오류가 발생했습니다.

    우분투 / nginx와 함께 Vagrant를 사용하는 사람이라면 nginx 디렉토리 (/ etc / nginx /)에 "sites-available"이라는 이름의 디렉토리가 있습니다.이 디렉토리에는 방랑자 maschine에 구성된 URL과 같은 이름의 파일이 들어 있습니다. 내 경우에는 농담 이었어 .app. 이 파일에는 다음과 같은 내용의 라인이 있습니다.

        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    

    PHP 버전을 원하는 특정 사이트로 변경할 수 있습니다.

    구글은 이것을 봤지만 어디를보아야하고 무엇을 바꿀지 간단하게 대답 할 수는 없었다.

    이게 누구에게나 도움이되기를 바랍니다. 감사.

  11. ==============================

    11.오류가 발생하는 경우

    오류가 발생하는 경우

    친절히 cPanel에 로그인 >> PHP 버전 선택 >> 확장 프로그램 MYSQL 선택

  12. ==============================

    12.(윈도우 mysql 설정)

    (윈도우 mysql 설정)

    1 단계 : Apache 제어판으로 이동> Apache> Config> PHP.ini

    2 단계 : 메모장에서 검색 (Ctrl + F) 다음을 위해 :; extension_dir = ""(주석으로 표시 될 수 있음;). 이 줄 바꾸기 : extension_dir = "C : \ php \ ext"(문장의 처음 부분에;를 제거하지 마십시오.)

    3 단계 : 검색 : extension = php_mysql.dll 그리고 제거; 처음에는

    4 단계 : Apache HTTP Server를 저장하고 다시 시작합니다. (Windows에서 이것은 대개 UI를 통해 수행됩니다)

    그게 다예요 :)

    빠진 php_mysql.dll에 대한 오류가 발생하면 php.net 사이트 또는 pecl.php.net에서이 파일을 다운로드해야 할 것입니다. (제발 당신이 그것을 어디에서 얻을 지에 대해 causius하십시오)

    PHP에 대한 추가 정보 : Windows에서 확장 기능 설치 - Manual

  13. ==============================

    13.구문 오류가 있어야합니다. 이 코드를 복사하여 붙여넣고 작동하는지 확인하십시오.

    구문 오류가 있어야합니다. 이 코드를 복사하여 붙여넣고 작동하는지 확인하십시오.

    <?php
        $link = mysql_connect('localhost', 'root', '');
        if (!$link) {
            die('Could not connect:' . mysql_error());
        }
        echo 'Connected successfully';
        ?
    

    나는 같은 오류 메시지가 있었다. mysql_connect () 대신 msql_connect () 함수를 사용하고있는 것으로 나타났습니다.

  14. from https://stackoverflow.com/questions/13825108/undefined-function-mysql-connect by cc-by-sa and MIT license