[php] 정의되지 않은 함수 mysql_connect ()

실행 aptitude install php5-mysql(및 MySQL / Apache 2 다시 시작)했지만 여전히이 오류가 발생합니다.

치명적인 오류 : 21 번째 줄의 /home/validate.php에서 정의되지 않은 함수 mysql_connect () 호출

phpinfo() /etc/php5/apache2/conf.d/pdo_mysql.ini 파일이 구문 분석되었다고 말합니다.



답변

음, 이것이 당신의 기회입니다! PDO 가 준비된 것 같습니다 . 대신 사용하십시오.

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

<?php
    phpinfo();
?>

없는 경우 php.ini파일에 다음을 추가 하십시오.

extension=php_mysql.dll


답변

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

가능하지 않은 경우 해결 방법으로 -functions : fix_mysql.inc.php 를 사용하여 이전 mysql_*함수 를 다시 만드는 작은 PHP 포함 파일을 만들었습니다 mysqli_*().


답변

우분투로 태그를 지정하셨습니다. 대부분의 경우 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 ()


답변

누군가가 docker php official images 문제로 여기에 온 경우 docker 컨테이너 내부에 아래 명령을 입력하십시오.

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

자세한 내용은 위의 링크를 참조하세요 How to install more PHP extensions(하지만 조금 어렵습니다 …).

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

https://docs.docker.com/samples/library/php/


답변

또한 정의되지 않은 MySQL_connect ()와 동일한 문제가 발생했습니다. PHP.ini 파일을 변경하려고 시도했지만 동일한 오류가 발생했습니다. 그런 다음이 솔루션에 와서 내 코드를 감가 상각 된 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.

이 정보가 도움이되기를 바랍니다. 이 솔루션은 저에게 올바르게 작동합니다.

편집하다:

이전 PHP에서 업그레이드하는 경우 다음을 수행해야합니다. apt-get install php7.0-mysql


답변

php.ini 파일에서

이것을 변경

;extension=php_mysql.dll

으로

extension=php_mysql.dll


답변

시험:

<?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