[SPIP] ~connexion mysql par socket
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 29 Jun 2018 10:03:43 +0000 (12:03 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 29 Jun 2018 10:03:43 +0000 (12:03 +0200)
https://core.spip.net/projects/spip/repository/revisions/24013

www/ecrire/req/mysql.php

index 593b9e7..490dcf7 100644 (file)
@@ -3,7 +3,7 @@
 /* *************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2017                                                *
+ *  Copyright (c) 2001-2018                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -44,9 +44,17 @@ function req_mysql_dist($host, $port, $login, $pass, $db = '', $prefixe = '') {
        if (!charger_php_extension('mysqli')) {
                return false;
        }
-       if ($port) {
+
+       // si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
+       if (
+               $port and !is_numeric($socket = $port)
+               and (!$host or $host=='localhost')) {
+               $link = @mysqli_connect($host, $login, $pass, '', null, $socket);
+       }
+       elseif ($port) {
                $link = @mysqli_connect($host, $login, $pass, '', $port);
-       } else {
+       }
+       else {
                $link = @mysqli_connect($host, $login, $pass);
        }