sql >> データベース >  >> RDS >> Mysql

MySQLデータベースへのPDO接続が拒否されました

    私の既存の関数と定数変数を試してみてください。これらの定数をお持ちの配列変数に変更することもできます。

    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のみがアクティブです。同様に機能しています。

    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. ExcelデータをMySQLデータベースにインポートする方法を学ぶ

    2. order by句が使用されていない場合、OracleSQLは任意の方法で行を返します

    3. Dockerコンテナ内で実行されているPostgreSQLを監視する方法:パート2

    4. 1つの列を複数の外部キーとして参照することは可能ですか?