[php] 더 이상 사용되지 않음 : mysql_connect ()

이 경고가 표시되지만 프로그램은 여전히 ​​올바르게 실행됩니다.

MySQL 코드는 PHP에서 메시지를 표시합니다.

더 이상 사용되지 않음 : mysql_connect () : mysql 확장은 더 이상 사용되지 않으며 향후 제거 될 예정입니다. 2 행의 C : \ xampp \ htdocs \ task \ media \ new \ connect.inc.php 대신 mysqli 또는 PDO를 사용하십시오.

connect.inc.php페이지는

<?php
  $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?>

이것은 무엇을 의미하며 어떻게 메시지를 제거 할 수 있습니까?



답변

문제에 대한 몇 가지 해결책이 있습니다.

MySQLi를 사용하는 방법은 다음과 같습니다.

<?php
$connection = mysqli_connect('localhost', 'username', 'password', 'database');

데이터베이스 쿼리를 실행하는 것도 간단하고 이전 방식과 거의 동일합니다.

<?php
// Old way
mysql_query('CREATE TEMPORARY TABLE `table`', $connection);
// New way
mysqli_query($connection, 'CREATE TEMPORARY TABLE `table`');

mysql_ *의 경고를 포함하여 더 이상 사용되지 않는 경고를 모두 끕니다.

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

교체해야하는 정확한 파일과 줄 위치는 “/System/Startup.php> line : 2″입니다. error_reporting (E_All); error_reporting (E_ALL ^ ​​E_DEPRECATED);


답변

mysql_connect 앞에 ‘@’를 추가하여 경고를 제거 할 수 있습니다.

@mysql_connect('localhost','root','');

그러나 경고에서 알 수 있듯이 mysql 확장은 향후 제거 될 예정이므로 mysqli 또는 PDO를 사용하십시오.


답변

이것만으로도 사용 중단 메시지를 억제하고 코드에서 다른 사용 중단에 대한 정보를 유지하려면 연결 앞에 @를 붙일 수 있습니다.

<?php
$connect = @mysql_connect('localhost','root','');
mysql_select_db('dbname');
?> 


답변

PHP 5.5.x에서 더 이상 사용되지 않는 기능

원래 MySQL의 확장은 이제 사용되지 않으며 생성 E_DEPRECATED데이터베이스에 연결할 때 오류를. 대신 ** MYSQLi 또는 PDO_MySQL 확장을 사용하십시오 . **

통사론:

<?php
  $connect = mysqli_connect('localhost', 'user', 'password', 'dbname');

또한 모든 mysql_*기능을 mysqli_*기능 으로 대체하십시오.

대신에

<?php
 $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?> 


답변

이 경고는 새 확장이 나타났기 때문에 표시됩니다. 당신이 여전히 오래된 것을 사용할 수 있다고 가정하지만 어떤 경우에는 불가능합니다.

데이터베이스와 연결하는 방법을 보여줍니다. 변수 값만 변경하면됩니다.

내 연결 파일 : connection.php

<?php
 $host='IP or Server Name (usually "localhost") ';
 $user='Database user';
 $password='Database password';
 $db='Database name';

 //PHP 5.4 o earlier (DEPRECATED)
 $con = mysql_connect($host,$user,$password) or exit("Connection Error");
 $connection = mysql_select_db($db, $con);

 //PHP 5.5 (New method)
 $connection =  mysqli_connect($host,$user,$password,$db);
?>

쿼리를 수행 할 때 확장자도 변경됩니다.

쿼리 파일 : “example.php”

<?php
 //First I call for the connection
 require("connection.php");

 // ... Here code if you need do something ...

 $query = "Here the query you are going to perform";

 //QUERY PHP 5.4 o earlier (DEPRECATED)
 $result = mysql_query ($query) or exit("The query could not be performed");

 //QUERY PHP 5.5 (NEW EXTENSION)
 $result = mysqli_query ($query) or exit("The query could not be performed");
?>

이 방법은 MySQL Improved Extension 을 사용하지만 PDO (PHP Data Objects)를 사용할 수 있습니다 .

첫 번째 방법은 MySQL 데이터베이스에서만 사용할 수 있지만 PDO는 다른 유형의 데이터베이스를 관리 할 수 ​​있습니다.

예를 들어 보려고하는데 첫 번째 만 사용한다고 말할 필요가 있으니 오류가 있으면 수정 해주세요.

내 PDO 연결 파일 : “PDOconnection.php”

<?php
 $hostDb='mysql:host= "Here IP or Server Name";dbname="Database name" ';
 $user='Database user';
 $password='Database password';

 $connection = new PDO($hostDb, $user, $password);
?>

쿼리 파일 (PDO) : “example.php”

<?php
 $query = "Here the query you are going to perform";
 $result=$connection->$query;
?>

끝내려면 당연히 경고를 숨길 수 있지만 오류가 발생하면 나중에 시간을 절약하는 데 도움이 될 수 있기 때문에 좋은 생각이 아닙니다 (우리 모두는 이론을 알고 있지만 때때로 많은 시간을 일하면 .. . 뇌가 없어요 ^^).


답변

PHP 5.5를 사용 중이거나 웹 서버가 5.5.0으로 업그레이드 되었기 때문입니다.

mysql_*함수는 5.5.0부터 더 이상 사용되지 않습니다.

여기에 이미지 설명 입력

Source


답변

mysql_ * 는 PHP v5.5.0에서 공식적으로 사용되지 않으며 향후 제거 될 예정입니다.

사용 mysqli_ * 기능 또는 PDO

Oracle Converting to MySQLi 읽기