Voila j’essaye de faire repartir le site d’une boite de textile, j’ai les sources PHP créer par une école d’un côté le schéma de la base de l’autre …
Pour le moment le serveur fonctionne, la base a été recréée, l’accès ODBC est opérationnel.
Je vous passe le code suivant c’est la dénition d’un Objet nommé DB. L’instance est déclarée à la fin du code.
J’ai vérifié si les paramètres à l’objet arrivaient bien, ça c’est OK.
Le problème se situe au niveau du constructeur (__construct) il n’est pas appelé lors de la création de l’objet, je suis plus calé en Pascal Objet et même en C++, alors je ne sais pas si le seul fait de l’appelé __construct suffit a faire comprendre que c’est le constructeur ?
<?php
class DB {
var $link;
var $nb_queries = 0;
function __construct($srv, $user, $pass, $db) {
$this->link = mysql_connect($srv, $user, $pass);
mysql_select_db($db, $this->link);
}
function query($req, $debug = false) {
if($debug)
print '<font color="green">Requete SQL : "'.$req.'"</font><br />';
$sql = mysql_query($req/*, $this->link*/);
if(!$sql) {
print '<font color="red">Erreur MySQL : '.mysql_error(/*$this->link*/).'</font><br />';
}
$this->nb_queries++;
return $sql;
}
function get_result($req) {
return mysql_fetch_array($this->query($req), MYSQL_ASSOC);
}
function get_var($req) {
$data = mysql_fetch_array($this->query($req), MYSQL_NUM);
return $data[0];
}
function fetch_array($sql) {
return mysql_fetch_array($sql, MYSQL_ASSOC);
}
function num_rows($sql) {
return mysql_num_rows($sql);
}
function get_nb_queries() {
return $this->nb_queries;
}
function last_id() {
return mysql_insert_id(/*$this->link*/);
}
function escape($str) {
return mysql_real_escape_string ($str/*, $this->link*/);
}
function like_escape($str) {
return mysql_real_escape_string (str_replace('_', '\_', str_replace('?', '\?', str_replace('%', '\%', $str)))/*, $this->link*/);
}
}
$DB = new DB($db_host, $db_user, $db_pass, $db_base);
?>