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

データベースとのPHP接続エラー

    mysqli_select_db 関数、手続き型APIを使用する場合、最初のパラメータとして実際の接続を渡す必要があります。manページに示されています。 。この接続またはリンクは、mysqli_connectです。 が返されるため、 mysqli_connectを無視しないでください。 返品 、ではなく、変数に割り当てます。
    関数のシグネチャは、これらすべてを明確に示しているので、 RTM 。コピーして貼り付けたものをいくつか示します。

                                \/=============================|
    bool mysqli_select_db ( mysqli $link , string $dbname )   ||
    //returns bool         argument 1       argument 2        ||
    mysqli mysqli_connect ([...])                             ||
    //returns type mysqli  accepts vast number of arguments   ||
                  //                                          ||
                  |======== useful here =======================|
    

    これは、次のように書く必要があることを意味します:

    $db = mysqli_connect('localhost', 'root', '');
    mysqli_select_db($db, 'video_system');
    

    手動の&&署名ショーのように、このmysqli_select_db ブール値を返します。 true DBが正常に選択されたことを意味します。false 失敗を示します。 関数の戻り値をチェックする習慣を身につけるのが最善です。 。どんなに些細なことのように見えても。だから:

    $db = mysqli_connect('localhost', 'root', '');
    if (!mysqli_select_db($db, 'video_system'))
    {//if return value is false, echo error message and exit script
        echo 'Failed to select db "video_system": ', mysqli_error($db), PHP_EOL;
        $db = null;//optional, but generally safer
        exit(1);//stop execution
    }
    //db selected, get to work here
    

    ただし、選択したDB名をmysqli_connectに渡すことで、この2番目の関数呼び出しを簡単に省略できます。 オフからの機能:

    $db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');
    

    これにより、追加の関数呼び出しのオーバーヘッドが節約され、パフォーマンスがわずかに向上します。 localhostも変更しました 文字列をIPアドレス127.0.0.1に送信します。これは、IPを使用すると、文字列を対応するIPアドレスに解決する必要がないためです。
    全体として、しばらく時間をかけるのが最善だと思いますドキュメントを読む




    1. PHPPDOトランザクションの複製

    2. PHP / PDO:文字列値を含む行を検索するためのSQl

    3. postgres CLOSESTオペレーターはありますか?

    4. OracleDatabase20cの新機能