[RESOLU] Ma table ne veut pas se créer...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Ma table ne veut pas se créer...

Re: Ma table ne veut pas se créer...

par tof73 » 31 déc. 2014, 15:48

var $mysqli = null;
public function connectDataBase(){
        $this->mysqli=new mysqli('localhost','root','','weather');
        $this->mysqli->set_charset("utf8");
       ...
}
       
public function createTable($city){
$this->mysqli->query("$city");
}
pour répondre à la question, mais cela n'est pas une bonne solution.

Re: Ma table ne veut pas se créer...

par Incognito » 31 déc. 2014, 15:28

Bonjour,

Merci pour votre aide... cela marche correctement(c'était vraiment une erreur de ma part a la noix...)...mais j'aimerais optimiser le code :
public function connectDataBase(){
	$mysqli=new mysqli('localhost','root','','weather');
	$mysqli->set_charset("utf8");
	
	if($mysqli->connect_errno){
	printf("Echec de la connexion:%s/n",$mysqli->connect_error);
	exit();
	}
	}
	
	public function createTable($city){
	
	$mysqli=new mysqli('localhost','root','','weather');
	$mysqli->set_charset("utf8");
	
	if($mysqli->connect_errno){
	printf("Echec de la connexion:%s/n",$mysqli->connect_error);
	exit();
	}
	
		$mysqli->query("CREATE TABLE IF NOT EXISTS $city
		(
		id INT(12) PRIMARY KEY NOT NULL AUTO_INCREMENT,
		period VARCHAR(15),
		temp_mini INT (11),
		temp_maxi INT(11),
		comment TEXT(140)
		) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1");
		
	}
Voila, je voudrais utiliser ma méthode connectDataBase() pour se connecter a ma base...elle se connecte mais ensuite ne reconnaÎt pas la variable $mysqli de la méthode createTable()....( j'ai essayé de placé un attribut $mysqli a ma classe...mais rien n'y fait...)

Merci pour vos réponses...cordialement.

Re: Ma table ne veut pas se créer...

par sirakawa » 30 déc. 2014, 22:15

Re: Ma table ne veut pas se créer...

par Incognito » 30 déc. 2014, 19:57

Oui, bien vu pour les guillemets...mais je ne vois pas comment exécuter la requête... (Sûrement un truc tout bête à faire...)...

Merci pour vos réponses.

Re: Ma table ne veut pas se créer...

par @rthur » 30 déc. 2014, 19:28

Bonjour,

il manque clairement des guillemets pour ta variable $sqli
Et dans le code que tu nous as fourni, tof73 a raison de dire qu'à aucun moment tu n'a l'air d'utiliser cette variable pour demander l'exécution de cette requête SQL

##edit : grillé par sirakawa ;-)

Re: Ma table ne veut pas se créer...

par sirakawa » 30 déc. 2014, 19:27

je fais une fonction cconnectDataBase() qui retourne $mysqli au prog principal
Quant à ca, ca ne fait pas d'erreur de syntaxe?
$
sqli=CREATE TABLE IF NOT EXISTS $city
                (
                id INT(12) PRIMARY KEY NOT NULL AUTO_INCREMENT,
                period VARCHAR(15),
                temp_mini INT (11),
                temp_maxi INT(11),
                comment TEXT(140)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
etc'est vrai que si on n'execute pas les requetes, on ne risque pas de créer la table...

Re: Ma table ne veut pas se créer...

par Incognito » 30 déc. 2014, 18:49

La fonction est appelé via un process...

Re: Ma table ne veut pas se créer...

par tof73 » 30 déc. 2014, 18:45

aucune fonction n'est appelée pour exécuter la requête sql.
la connexion est ouverte dans la fonction connectDataBase, pas sur qu'elle soit disponible dans createTable

Ma table ne veut pas se créer...

par Incognito » 30 déc. 2014, 18:06

Bonjour,

Voici mon code :
public function connectDataBase(){
	$mysqli=new mysqli('localhost','root','','weather');
	$mysqli->set_charset("utf8");
	
	if($mysqli->connect_errno){
	printf("Echec de la connexion:%s/n",$mysqli->connect_error);
	exit();
	}
	}
	
	public function createTable($city){
	
	$this->connectDataBase();
	
		$sqli=CREATE TABLE IF NOT EXISTS $city
		(
		id INT(12) PRIMARY KEY NOT NULL AUTO_INCREMENT,
		period VARCHAR(15),
		temp_mini INT (11),
		temp_maxi INT(11),
		comment TEXT(140)
		) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
		
	}
Tout fonctionne jusqu'a $this->connectDataBase();... mais en suite ma table ne veut pas se créer...

Si quelqu'un pourrait m'aider...

D'avance merci...