복붙노트

사용되지 않는 함수 : mysql_connect ()

PHP

사용되지 않는 함수 : mysql_connect ()

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

MySQL 코드가 PHP에서 메시지를 보여줍니다.

내 connect.inc.php 페이지는

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

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

해결법

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

    1.문제에 대한 해결책은 거의 없습니다.

    문제에 대한 해결책은 거의 없습니다.

    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);
    
  2. ==============================

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

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

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

    mysqli 나 PDO를 사용하면 mysql 확장 기능이 앞으로 제거 될 것이기 때문에주의를 기울여야한다.

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

    3.이것에 대한 비추천 메시지를 억제하려면 (그리고 코드에서 다른 비추천 정보를 계속 유지하십시오) 연결에 @를 접두사로 붙이면됩니다.

    이것에 대한 비추천 메시지를 억제하려면 (그리고 코드에서 다른 비추천 정보를 계속 유지하십시오) 연결에 @를 접두사로 붙이면됩니다.

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

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

    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');
    ?> 
    
  5. ==============================

    5.mysql_ * 함수는 5.5.0에서 더 이상 사용되지 않습니다.

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

    출처

  6. ==============================

    6.이 경고는 새 확장이 나타나기 때문에 표시됩니다. 그것은 당신이 아직도 오래된 것을 사용할 수 있지만 어떤 경우에는 불가능하다고 생각합니다.

    이 경고는 새 확장이 나타나기 때문에 표시됩니다. 그것은 당신이 아직도 오래된 것을 사용할 수 있지만 어떤 경우에는 불가능하다고 생각합니다.

    데이터베이스와 어떻게 연결되는지 보여 드리겠습니다. 변수 값을 변경하기 만하면됩니다.

    내 연결 파일 : 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;
    ?>
    

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

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

    7.mysql_ *은 PHP v5.5.0부터 공식적으로 사용되지 않으며 앞으로 삭제 될 예정입니다.

    mysql_ *은 PHP v5.5.0부터 공식적으로 사용되지 않으며 앞으로 삭제 될 예정입니다.

    mysqli_ * 함수 나 pdo를 사용하십시오.

    Oracle에서 MySQLi로 변환 읽기

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

    8.pdo 개체와 같이 db에 연결하는 새로운 방법을 사용하기 시작한다는 경고 만 있습니다.

    pdo 개체와 같이 db에 연결하는 새로운 방법을 사용하기 시작한다는 경고 만 있습니다.

    http://code.tutsplus.com/tutorials/php-database-access-are-you-doing-it-correctly--net-25338

    설명서는 여기에 있습니다.

    http://www.php.net/manual/en/book.pdo.php

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

    9."deprecated"라는 경고는 일반적으로 오래된 기능을 사용하려고한다는 것을 의미합니다. 그것은 당신의 코드가 작동하지 않는다는 것을 의미하지만 리팩토링을 고려해야합니다.

    "deprecated"라는 경고는 일반적으로 오래된 기능을 사용하려고한다는 것을 의미합니다. 그것은 당신의 코드가 작동하지 않는다는 것을 의미하지만 리팩토링을 고려해야합니다.

    귀하의 경우에는 funql mysql_가 사용되지 않습니다. 여기에 대해 더 알고 싶다면 이미 좋은 설명이 있습니다. PHP에서 mysql_ * 함수를 사용하면 안되는 이유는 무엇입니까?

  10. ==============================

    10.

    <?php 
    $link = mysqli_connect('localhost','root',''); 
    if (!$link) { 
        die('Could not connect to MySQL: ' . mysqli_error()); 
    } 
    echo 'Connection OK'; mysqli_close($link); 
    ?>
    

    이렇게하면 문제가 해결됩니다.

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

    11.글쎄, 난 그냥 새로운 메시지로 이동했을 때 같은 메시지에 직면했다! 어쨌든 "mySQLi"를 "mySQLi"로 바꾸려고했지만 작동하지 않으므로 이렇게했습니다.

    글쎄, 난 그냥 새로운 메시지로 이동했을 때 같은 메시지에 직면했다! 어쨌든 "mySQLi"를 "mySQLi"로 바꾸려고했지만 작동하지 않으므로 이렇게했습니다.

    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    # Turn off all error reporting
    error_reporting(0);
    $connect_myconn = "Database Connection";
    $hostname_myconn = "localhost";
    $database_myconn = "db name";
    $username_myconn = "user name";
    $password_myconn = "pass";
    $myconn = mysql_connect($hostname_myconn, $username_myconn, $password_myconn) or die("<h1 style=margin:0;>A MySQL error has occurred.</h1><p><b>Your Query:</b> " . $connect_myconn . "<br /> <b>Error Number:</b> (" . mysql_errno() . ")</p>" . mysql_error());
    mysql_select_db($database_myconn, $myconn);
    ?>
    

    트릭은 오류보고를 해제하는 것입니다 :)

    # Turn off all error reporting
    error_reporting(0);
    
  12. ==============================

    12.PDO 클래스는 이러한 메소드를 대체합니다. Mysql 또는 MariaDB 예제 :

    PDO 클래스는 이러한 메소드를 대체합니다. Mysql 또는 MariaDB 예제 :

    $BDD_SQL = new PDO('mysql:host='.BDD_SQL_SERVER.';dbname='.BDD_SQL_BASE.';charset=utf8', 
            BDD_SQL_LOGIN, BDD_SQL_PWD, 
            array(
              PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //launch exception if error
              PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC
                    ));
    

    출처 : PDO 등급

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

    13.그런 다음 코딩을 완료했다면

    그런 다음 코딩을 완료했다면

    ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 
    

    좋은 옵션이지만 처음에는 mysqli를 사용해야한다.

  14. ==============================

    14.PHP 페이지에 넣으십시오.

    PHP 페이지에 넣으십시오.

    ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 
    
  15. ==============================

    15.나를 위해 @ 작품 추가!

    나를 위해 @ 작품 추가!

    error_reporting으로 테스트 (E_ALL ^ ​​E_DEPRECATED);

  16. from https://stackoverflow.com/questions/21797118/deprecated-mysql-connect by cc-by-sa and MIT license