Bonjour, j'ai un problème d'insertion dans une base. Il y a apperemment une erreur de requête sql (c'est la que j'ai un message d'erreur)
J'utilise cette classe BDD pour toutes mes opérations sur base de données:
<?php
class BDD {
private $id_conn;
private $serveur;
private $user;
private $mdp;
private $nombase;
private $result;
public $row;
public $numrows;
public $query;
function __construct($serveur='localhost', $user='root', $mdp='', $nombase='edt') {
$this->serveur=$serveur;
$this->user=$user;
$this->mdp=$mdp;
$this->nombase=$nombase;
$this->row=array();
}
function connection() {
$this->id_conn=mysql_connect($this->serveur, $this->user, $this->mdp)
or die('Erreur connexion serveur!');
mysql_select_db($this->nombase, $this->id_conn)
or die("Erreur selection BdD!");
return ($this->requete());
}
function requete() {
$this->result=mysql_query($this->query)
or die("erreur SQL!");
$i=0;
while($this->row[$i]=mysql_fetch_array($this->result, MYSQL_BOTH)) {
$i++;
}
$this->numrows=mysql_num_rows($this->result);
mysql_free_result($this->result);
return ($this->row);
}
}
Puis j'effectue le code suivant dans le prog principal:
<?php
include('classes2.php');
$nom_mat=$_POST['nom_mat'];
$id_mat=$_POST['id_mat'];
$nb_cours=$_POST['nb_cours'];
$matiere=new BDD('localhost', 'root', '', 'edt'); //initialisation
$matiere->connection(); //connection
$matiere->query='INSERT INTO `matieres` (`id_mat` , `nom_mat` , `nb_cours`) VALUES ('$id_mat','$nom_mat','$nb_cours') '; //enregistrement de la requete
$matiere->requete(); //éxecution de la requete
?>
Et il me die "erreur sql", pourtant la requête s'execute bien quand je la teste avec phpmyadmin. La variable query de ma classe n'est pas vide.
Y a-t-il un problème das ma fonction requete(qui est plutot destinée au départ à extraire des infos de la base de données)? Auriez vous d'autres solutions à me proposer??
Peut être ai-je fait une erreur assez grossière que vous pourrez m'aider à résoudre, sinon, je ne vois pas de solution apparente...
merci par avance.
Bonjour, j'ai un problème d'insertion dans une base. Il y a apperemment une erreur de requête sql (c'est la que j'ai un message d'erreur)
J'utilise cette classe BDD pour toutes mes opérations sur base de données:
[php]<?php
class BDD {
private $id_conn;
private $serveur;
private $user;
private $mdp;
private $nombase;
private $result;
public $row;
public $numrows;
public $query;
function __construct($serveur='localhost', $user='root', $mdp='', $nombase='edt') {
$this->serveur=$serveur;
$this->user=$user;
$this->mdp=$mdp;
$this->nombase=$nombase;
$this->row=array();
}
function connection() {
$this->id_conn=mysql_connect($this->serveur, $this->user, $this->mdp)
or die('Erreur connexion serveur!');
mysql_select_db($this->nombase, $this->id_conn)
or die("Erreur selection BdD!");
return ($this->requete());
}
function requete() {
$this->result=mysql_query($this->query)
or die("erreur SQL!");
$i=0;
while($this->row[$i]=mysql_fetch_array($this->result, MYSQL_BOTH)) {
$i++;
}
$this->numrows=mysql_num_rows($this->result);
mysql_free_result($this->result);
return ($this->row);
}
} [/php]
Puis j'effectue le code suivant dans le prog principal:
[php]<?php
include('classes2.php');
$nom_mat=$_POST['nom_mat'];
$id_mat=$_POST['id_mat'];
$nb_cours=$_POST['nb_cours'];
$matiere=new BDD('localhost', 'root', '', 'edt'); //initialisation
$matiere->connection(); //connection
$matiere->query='INSERT INTO `matieres` (`id_mat` , `nom_mat` , `nb_cours`) VALUES ('$id_mat','$nom_mat','$nb_cours') '; //enregistrement de la requete
$matiere->requete(); //éxecution de la requete
?> [/php]
Et il me die "erreur sql", pourtant la requête s'execute bien quand je la teste avec phpmyadmin. La variable query de ma classe n'est pas vide.
Y a-t-il un problème das ma fonction requete(qui est plutot destinée au départ à extraire des infos de la base de données)? Auriez vous d'autres solutions à me proposer??
Peut être ai-je fait une erreur assez grossière que vous pourrez m'aider à résoudre, sinon, je ne vois pas de solution apparente...
merci par avance.