J'essaie d'étendre la classe mysqli en php afin de créer une classe wrapper. Je voudrais que cette classe gère plusieurs connexions .. Je suis actuellement à un stade très précoce et ai rencontré un problème:Erreur de segmentation PHP mysqli
Auth Connected pas: 1 1045: Accès refusé pour l'utilisateur 'rootty' @ 'localhost' (en utilisant Mot de passe: OUI) segmentation fault
Il semble quand la deuxième connexion a une erreur une erreur de segmentation est une erreur correctement créée connexion .. mais
<?php
class mysqli_ls extends mysqli
{
private $link = array();
private $link_no = 0;
/* ************************************************************ */
public function __construct()
{
}
/* ************************************************************ */
public function open($host='', $user='', $pass='', $port='3306', $database='')
{
if (empty($host) || empty($user) || empty($pass) || empty($database))
{
$this->error[] = "Missing required connection variables";
return false;
}
$this->link_no++;
@$this->link[ $linkno ] = $this->connect($host, $user, $pass, $database, $port);
if ($this->connect_errno)
{
$this->error[] = $this->connect_errno .':'. $this->connect_error;
return false;
}
return $this->link_no;
}
###### script test
#!/usr/bin/php
<?php
require_once('mysqli.class.php');
$_mysqli = new mysqli_ls;
$_auth = $_mysqli->open('localhost','root','xx','3306','auth');
if ($_auth === false) print $_mysqli->get_last_error() ."\n";
else print 'Auth Connected no: '. $_auth ."\n";
$_trak = $_mysqli->open('localhost','root','sxx','3306','wlr_tracker');
if ($_trak === false) print $_mysqli->get_last_error() ."\n";
else print 'Trak Connected no: '. $_trak ."\n";
Un Segfault il y a probablement un bogue dans le code C/C++ utilisé par mysqli. Je n'ai pas réussi à reproduire ce problème dans 5.3.3. – netcoder