Mysql
 sql >> база данни >  >> RDS >> Mysql

PDO връзката с MySQL база данни е отказана

Опитайте съществуващите ми функции и константни променливи, можете също да промените тези константи в променлива от масив, която имате.

define("SERVER_SQL_VERSION","mysql");
define("SQL_SERVER","localhost");
define("SQL_PORT","3306");
define("SQL_USERNAME","root");
define("SQL_PASSWORD","");
define("SQL_DB_NAME","db");

if(!function_exists('pdoConnect')) {
    function pdoConnect() {
        $pdo = new PDO(SERVER_SQL_VERSION.":host=".SQL_SERVER.";dbname=".SQL_DB_NAME."", "".SQL_USERNAME."", "".SQL_PASSWORD.""); 
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        return $pdo;
    }
}

Може да има проблем с вашата конкатенация, това трябва да работи...

Освен това разделих SERVER_SQL_VERSION и добавих функции за проверка дали драйверът е наличен...използвам софтуера XAMPP и само mysql и sqlite са активни, ако вие/другите се опитате да използвате postgresql и така нататък...това трябва също така работи.

if(!function_exists('check_sql_version')) {
    function check_sql_version() {
        $sql_available = false;     //make it false yet
        foreach(PDO::getAvailableDrivers() as $key => $val) {
            if(SERVER_SQL_VERSION == $val)
            {
                $sql_available = true;
            }
        }
        //check now if sql_available is true or false
        if($sql_available == true)
            return true;
        else
            return false;
    }
}

Така че трябва да се вземе предвид проба:

if(!check_sql_version()) {
    echo '('.SERVER_SQL_VERSION.') is not available, you only have this drivers:<br/>';
    foreach(PDO::getAvailableDrivers() as $key => $val) {
        $key = $key + 1;
        echo $key.') '.$val.'<br/>';
    }
    exit(); //exit and dont proceed
}
$stmt = pdoConnect()->prepare("SELECT * FROM accounts");
$stmt->execute();

Надявам се да помогне!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo неуспешно:Име или услуга не са известни

  2. Къде да съхранявате MySQL идентификационни данни в PHP скриптове?

  3. aws - ec2 - mysql - спиране на екземпляра, рестартиране - паролите на други потребители са променени

  4. как да "заредя файл с данни" на Amazon RDS?

  5. Отхвърляне на PDO MySQL израз, ако е намерена определена стойност в поле?