2017-03-22 12 views
0

、それはmysqliのmysqli_connect([文字列$ホスト=は、ini_get( "mysqli.default_host") [、文字列$ユーザ名=は、ini_get( "mysqli.default_user")[、文字列$ passwdのmysqli経由で別のMySQLポートに接続するには? PHPの<a href="http://php.net/manual/en/mysqli.construct.php" rel="nofollow noreferrer">mysqli doc</a>で

を語ります= ini_get( "mysqli.default_socket")]]、ini_get( "mysqli.default_pocket")[、string $ dbname = "" [、int $ port = ini_get( "mysqli.default_port")[、string $ソケット= ] ]]])

を私がやる

$dblink = new \mysqli($c['host'], $c['user'], $c['pass'], $c['name'], $c['port']);

デフォルトのポートに接続します。私はこの

$dblink = new \mysqli($c['host'].":".$c['port'], $c['user'], $c['pass'], $c['name'], $c['port']);

をした後にのみ、 はそれが正しいポートに接続しました。

+0

あなたは自分の質問に答えました... –

+0

'$ c ['host'] == 'localhost''はあなたのケースではありますか? – axiac

+0

はい、@axiacですが、ドキュメントによれば、ポートは引数として指定できます。 – anjanesh

答えて

0

mysqlに接続した後、接続の情報をチェックアウトすることができます。

$dblink = new \mysqli($c['host'], $c['user'], $c['pass'], $c['name'], $c['port']); if ($dblink->connect_error) { die('Connect Error (' . $dblink->connect_errno . ') '. $dblink->connect_error); } echo $dblink->host_info;

+1

エラー/例外はスローされません。 mysqliコンストラクタのport引数を無視しているようです。 – anjanesh

0

mysqli_connect()のドキュメントは言及:

ホスト

ホスト名またはIPアドレスのいずれかになります。 NULL値または文字列"localhost"をこのパラメータに渡すと、ローカルホストとみなされます。可能であれば、TCP/IPプロトコルの代わりにパイプが使用されます。

これは、基礎となるlibmysqlライブラリの動作です。

注:

サーバーとして"localhost"または"localhost:port"を指定するたびに、MySQLクライアントライブラリが上書きされますまた、ソリューションも提供される非推奨mysql_connect()機能のドキュメントに記載されていますこれをローカルソケット(Windowsでは名前付きパイプ)に接続しようとします。 TCP/IPを使用する場合は、"localhost"の代わりに"127.0.0.1"を使用してください。

行動

PDO_MYSQL DSNのマニュアルで指定されているが、それはこの時間よりあいまいです:

注:UNIXのみ:ホスト名が"localhost"に設定されている

、サーバーとの接続はドメインソケットを介して行われます。 PDO_MYSQLlibmysqlclientに対してコンパイルされている場合、ソケットファイルの場所はlibmysqlclientの場所にコンパイルされています。PDO_MYSQLmysqlndに対してコンパイルされている場合、デフォルトのソケットはpdo_mysql.default_socket settingで設定できます。

関連する問題