Page 1 sur 1

Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 00:46
par jay64
Bonsoir,

Je cherche à faire une connexion à BDD hébergée sur un serveur dédié 1and1.
Le hostname (DB_HOST) qui m'est indiqué par l'hébergeur est le suivant : localhost:/tmp/mysql5.sock

La fonction que j'utilise (récupérée d'un script) est aisni faite :
function connect()
	{
		self::$instance = new mysqli($this->DB_HOST, $this->DB_USERNAME, $this->DB_PASSWORD, $this->DB_DATABASE);
		
		if (mysqli_connect_errno()) {
			$this->raise_error(printf("Connect failed: %s\n", mysqli_connect_error()));
		}
		
		return self::$instance;
	}
Et l'erreur retournée par le navigateur en testant est la suivante :
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): Unknown MySQL server host 'localhost:/tmp/mysql5.sock' (1) in /homepages/18/d302109344/htdocs/sportwif/ebplo/EasyAPNS/php/classes/class_DbConnect.php on line 176
Connect failed: Unknown MySQL server host 'localhost:/tmp/mysql5.sock' (1) There seems to have been a slight problem with our database, please try again later.
Savez-vous ce qui coince ?

Merci !

Jérôme

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 05:36
par stealth35
$this->DB_HOST est égale a quoi ?

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 08:45
par jay64
function __construct()
	{
		$this->DB_HOST     = "localhost:/tmp/mysql5.sock";
		$this->DB_USERNAME = "dbo3413xxxxx";
		$this->DB_PASSWORD = "xxxxxxx";
		$this->DB_DATABASE = "db341xxxxxxx";
		

	}
C'est le paramétrage donné par 1and1 pour ma BDD sur mon serveur dédié

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 18:01
par stealth35
met juste localhost, tu peux lui dire sur quel socket se connecter avec le 5eme paramètre (si il est diffèrent de mysql.default_socket)
localhost:/tmp/mysql5.sock
veux dire :
host = localhost
socket = /tmp/mysql5.sock

:wink:

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 19:14
par jay64
C'est bien ce que j'avais un peu en tête mais je ne sais pas comment le rédiger.
J'ai fait ça mais ce n'est pas bon :
		$this->DB_HOST     = "localhost";
		$this->DB_SOCKET   = "/tmp/mysql5.sock";

	*/
	function connect()
	{
		self::$instance = new mysqli($this->DB_HOST, $this->DB_USERNAME, $this->DB_PASSWORD, $this->DB_DATABASE, $this->DB_SOCKET);
		
		if (mysqli_connect_errno()) {
			$this->raise_error(printf("Connect failed: %s\n", mysqli_connect_error()));
		}
		
		return self::$instance;
	}
Je le spécifie comment ce Socket ?

Merci !

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 19:16
par stealth35
Je le spécifie comment ce Socket ?

Merci !
http://www.php.net/manual/fr/mysqli.connect.php
:wink:

il est diffèrent de celui par défaut ?

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 19:30
par jay64
Alors ça j'avais déjà regardé mais il me semble bien respecter l'ordre des paramètres.
il est diffèrent de celui par défaut ?
Oui, puisque moi c'est "/tmp/mysql5.sock" au lieu de ""/tmp/mysql.sock" (enfin si j'ai bien tout compris ...)

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 19:32
par stealth35
Alors ça j'avais déjà regardé mais il me semble bien respecter l'ordre des paramètres.
y'a le paramètre port avant :wink:
donc sois 3306 sois null

Re: Pb avec la fonction mysqli et bdd chez 1and1

Posté : 12 sept. 2010, 19:36
par jay64
BINGO !!!! Il me manquait le port !

Comme ça c'est beaucoup mieux :
	function __construct()
	{
		
		$this->DB_HOST     = "localhost";//infongd16389:3316     localhost:/tmp/mysql5.sock
		$this->DB_SOCKET   = "/tmp/mysql5.sock";
		$this->DB_PORT     = "3316";
		
	/**
	* Connect to the Database.
	*
	*/
	function connect()
	{
		self::$instance = new mysqli($this->DB_HOST, $this->DB_USERNAME, $this->DB_PASSWORD, $this->DB_DATABASE, $this->DB_PORT, $this->DB_SOCKET);
		
		if (mysqli_connect_errno()) {
			$this->raise_error(printf("Connect failed: %s\n", mysqli_connect_error()));
		}
		
		return self::$instance;
	}
Merci beaucoup pour ton aide ! :D

Jérôme